1122-Python面向对象基础
一阶段剩余安排:面向对象基础,面向对象的语法,正则表达式,网络编程基础,多线程基础,考试
-
类:拥有相同功能、相同属性的对象的集合,抽象的概念,比如:人、动物、树、电脑、手机等等
1)声明:
class 类名:[类名:首字母大写,多个单词遵守驼峰式命名,不能是关键字与系统类名]
["""类的说明文档"""]
特征、属性
方法、函数
2)类属性:类中保存数据的变量,属性分为两种:字段、对象属性
a. 字段属性:声明在类里面函数外面的变量;通过类调用:类名.字段
b. 对象属性:声明在init方法中;声明:self.属性名 = 值;通过对象调用:对象.属性
-
对象:类的实例,具体的实物,例如:我的手机、电脑,具体的某个人等
创建对象:对象名 = 类名(),创建类的对象并返回
方法:声明在类中的函数,分为三种:对象方法、类方法、静态方法
-
对象方法:
1)声明:直接声明在类中的函数
2)调用:对象名.对象方法()
3)特点:self在调用过程中会默认传递self对象,self表示当前调用对象本身
4)魔术方法__ init__:类中自带,也是对象方法,初始化对象,创建对象自动调用
5)构造方法/函数:Python中声明类时,系统会自动为类声明一个类名函数,调用:类名()
6)使用场景:函数功能需要使用对象
-
类方法:
1)声明:在函数声明前加@classmethod
2)调用:类.方法名()
3)特点:自带一个参数cls,cls表示当前调用类本身,cls在调用过程中会默认传递给cls对象
4)使用场景:在不需要使用对象的情况下,需要类函数
-
静态方法:
1)声明:在函数前加@staticmethod
2)调用:类.方法名()
3)使用场景:在不需要使用对象的情况下,也不需要类的情况,普通使用
-
对象属性的增删改查:
1)获取:
a. 对象.属性:获取对象指定属性的值
b. getattr(对象,属性名:str):获取指定对象的属性值,属性名可以是变量名
c. getattr(对象,属性名:str,默认值):获取指定对象的属性值,如果属性不存在返回默认值
2)修改/增加:
a. 对象名.属性名 = 值:当属性存在即修改,不存在则增加
b. setattr(对象,属性名,值):当属性存在即修改,不存在则增加
3)删除:
a. del 对象.属性:删除对象指定的属性
b. delattr(对象,属性名):删除对象指定的属性
-
内置类属性:声明类时,系统提供的属性
1)类.__ name__:获取类名,数据类型为字符串
2)对象.__ class__:获取对象对应的类(和type(对象)功能一样)
3)类.__ doc__:获取当前类的说明文档
4)__ dict__ :
a. 类.__ dict__:获取类中所有字段和值,以字典形式返回
b. 对象.__ dict__:获取对象中所有的属性和对应的值,以字典形式返回;如果设置slots,不能用
5)__ slots__:约束当前类最多能拥有的对象属性
6)类.__ module__:获取当前类声明的模块名
7)类.__ bases__:获取当前类的父类门,object是Python的基类