| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 12月22日 -> 正文阅读 |
|
[大数据]12月22日 |
一、复习 1.json 要求:有且只有一个数据 ; 必须是json支持的类型的数据 数字:19,23,9,3e4,-12 字符串:“abc”,"\tabc\n123" 布尔:true,false 数组:{12,23,“abc”,true} 字典:{“key”:12} 工具:json json——>python :load(json格式的字符串) python——>json:dumps(python数据) 2.面向对象编程 class Math: ? def f(self): ? pass 二、对象方法 class 类名: ? 类的说明文档 ? 类的内容(对象方法,类方法,静态方法+对象属性,类属性) 1.对象方法 方法指的就是定义在类中的函数。 1)怎么定义:直接定义(不需要添加任何装饰器)在类中的函数就是对象方法 2)怎么调用:通过’对象.xx( )'的形式来调用 3)特点:每个对象方法都有一个默认参数self,并且通过对象调用对象方法时不需要传参。 系统会自动将当前对象传给self(self谁调用就指向谁) 2.初始化方法 —— _ _ init _ _ _ _ init _ _是python类中一个特殊的对象方法,也是魔法方法。 魔法方法:类中方法名以__ 开头并且以 __结尾的方法都是魔法方法,魔法方法全部都是系统自带的。 ? 魔法方法不需要程序员主动调用,系统会在特定的情况下自动调用。 1)_ _ init _ _ 方法会在创建对象的时候被自动调用的 2)通过类创建对象的时候需不需要参数,需要几个参数,由类中的_ _ init _ _决定。 三、属性 1.类中的属性 定义类就是用代码来描述这个类是拥有哪些相同特征的事物的总和。 如果特征是通过数据来体现的,那么这种特征就用属性来表示。 1)类属性 a.怎么定义:直接定义在类中的变量就是类属性 eg: class A: ? #a、name是类属性 ? a=10 ? name=‘小明’ print(A.a) print(A.b) b.怎么使用:通过’类.xx’的方式来使用 c.什么时候用:属性值不会因为对象不同而不一样的时候就使用类属性 2)对象属性 a.怎么定义:以’self.xx=值’的形式定义在_ _ init _ _ 方法中 eg:#b和gender是对象属性 ? def _ _ init _ _ (self): ? self.b=10 ? self.gender=‘男’ b.怎么使用:通过’对象.xx’的方式来使用 eg:#使用对象属性 x=A() print(x.b) print(x.gender) c.什么时候用:属性值会因为对象不同而不一样的时候就使用对象属性 2.对象属性默认值 _ _ init_ _ 的参数 1)方式一:直接给固定的值(主要用于这个属性值在绝大部分情况下都是某一个值,极少数情况会变化的时候) class Person: ? def _ _ init _ _(self): ? self.name=‘张三’ ? self.age=18 ? self.gender=‘男’ 2)方法二:在_ _ init_ _中提供给这个属性赋值的形参,形参没有默认值(属性值一般都不一样) class Person: ? def _ _ init _ _(self,name): ? self.name=name ? self.age=18 ? self.gender=‘男’ p1=Person.name 3)方式3:在_ _ init_ _中提供给这个属性赋值的形参,形参有默认值 四、方法 1.方法 1)对象方法 a.怎么定义:直接定义(不需要加装饰器) b.怎么调用:对象.xx( ) c.特点:参数self,不需要传参,指向当前对象 d.什么时候用:实现函数功能时是否需要对象属性,就使用对象方法 class A: def func1(self): ? print(‘对象方法’) 2)类方法 a.怎么定义:定义函数前加 @classmethod装饰器 b.怎么调用 : 类.xx( ) c.特点:自带参数cls,调用的时候不用传参,系统会自动将当前类传给cls d.什么时候用:在不需要对象属性的情况下需要类就使用类方法 3)静态方法 @staticmethod def func3(): ? print() a.怎么定义:定义函数前加 @staticmethod装饰器 b.怎么调用 : 类.xx( ) c.特点:没有特点–没有默认参数 d实现函数功能既不需要类,也不需要对象,就使用静态方法。 五、对象属性的增删改查 class Student: ? def__ init __ (self,name,age=18,stuid): ? self.name=name ? self.age=age ? self.stuid=stuid ? self,score=0 #当通过print打印当前类的对象的时候,这个方法会被自动调用,并且在打印的时候会打印这个方法的返回值(返回值必须是字符串) #打印的是谁self就是谁 def__ repr __(self): ? #学号:xx 姓名:xxx,年龄:xx,分数:xx ? return f’学号:{self.stuid} 姓名:{self.name },年龄:{self.age},分数{self.score}’ stu1=Student(‘小明’,‘stu001’) print(stu1) stu2=Student(‘小花’,‘stu002’,20) print(stu2) 1.查 — 获取属性值 对象.对象属性 —— 获取指定属性对应的值 getattr(对象,属性名) —— —— 获取指定属性对应的值 getattr(对象,属性名,默认值) —— 获取指定属性对应的值,如果属性不存在不报错返回默认值 print(stu1.name) print(getattr(sut1,‘name’)) #getattr可以动态确定获取的是哪种属性的值 value=input(‘请输入需要获取的属性的名字:’) print(getattr(stu1,value)) 2.增、改 对象.属性=值 —— 如果属性存在就是修改指定属性的值,如果属性不存在就添加属性。 setattr(对象,属性,值) —— 如果属性存在就修改指定属性的值,如果属性不存在就添加属性 stu1.name=‘张三’ print(stu1) stu1.heigh=180 print(stu1) setattr(stu1,‘name’,'李四’) print(stu1) 3.删除 del 对象.属性 delattr(对象,属性名) del stu1.stuid print(stu1) delattr(stu1,‘age’) print(stu1) #__ slots __ 可以约束当前类的对象最多能拥有哪些对象属性 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:43:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |