类和对象
1.类:具有相同的属性和方法的对象的集合。
2.类和对象的关系:
3.类包含的属性和方法:
4.语法:class 类名:
属性(相对于类来说属于全局,每个方法都可以调用。)
方法(get/set)
Set_name():
Get_name():
公有方法:
私有方法: def __test():只能在当前类中使用,以__开头。
5.__str__():输出地址类型等等。
6.自动销毁方法:__del__(): 当对象
7.getrefcount()输出引用个数。
8.继承:子类(可以有多个子类)继承父类,子类可以使用父类的属性和方法,简化代码。(面向对象的三大特征:封装、继承、多态)
9.当生成子类对象时,先初始化父类对象,所以如果父类有__init__方法,并且有属性时,要通过子类构造赋值。
10.在子类中,调用父类的属性时,在__init__()方法中使用父类.属性,或self.属性 调用父类方法时:super().父类方法()
、super(父类,self).__init__(参数)。
11.当子类继承父类时,子类的构造方法应该包含父类和子类的共同属性,在子类的初始化方法中,将父类的属性传递给父类,子类的属性赋值给子类。
12.方法重写:子类继承父类时,子类的方法签名和父类一样
13.三代继承:子类初始化方法需要祖父类、父类及自己的属性,可以调用父类的初始化方法传参,可以重写父类的方法。
14.多态:
类属性:属于类的成员,属于对象共有的
类方法:在方法上添加@classmethod
@classmethod
defcmethod(self):
可以通过类方法调用类属性,也可以通过对象调用类属性
静态方法:@staticmethod,静态方法没有参数,与类和对象都没关系。可以通过类和对象调用。
15.__new__(self)用来创建对象,而且必须又返回值。
16.类的专有方法:
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__div__: 除运算
__mod__: 求余运算
__pow__: 乘方