类
类
属性
类里的属性分为对象属性和类属性。
对象属性
- 对象属性定义一般在初始化函数_init_()和各个方法函数中。
- 对象属性用来区分不同类对象特征,不同的类对象可以具有不同的对象属性。
- 对象属性只能以对象名的方式调用。
类属性。
- 类属性定义在类名后初始化函数前。
- 类属性主要描述了类对象的共有特征,它不随 着对象的改变而改变。
- 类属性可以以类名或对象名的方式调用。
- 类属性的更改只可以类名调用的方式进行!如若以 对象名调用方式进行,则Python会自动新建一个同名的对象属性!这其实也是对类属性的一种保护机制。
特殊方法
特殊方法允许类通过重载操作符(如+ - * / % **等) 的方式来实现操作符运算。可以通过修改这些特殊方法,来实现类的加减运算等,但是需要注意修改的类的位置要符合运算符的结合性。
这些特殊方法的名称都是固定的,都是以双下划线开头,且以双下划线结尾,不可随意更改。常见的特殊方法如下。
__add__(self, obj) +
__sub__(self, obj) -
__mul__(self, obj) *
__truediv__(self,obj) /
__floordiv__(self, obj) //
__mod__(self, obj) %
__pow__(self, obj) **
__lshift__(self, obj) <<
__rshift__(self, obj) >>
__and__(self, obj) &
__or__(self, obj) |
__xor__(self, obj) ^
__invert__(self) ~
__neg__(self) - (一元负)
__pos__(self) + (一元正)
__lt__(self, obj) <
__gt__(self, obj) >
__eq__(self, obj) ==
__le__(self, obj) <=
__ge__(self, obj) >=
__ne__(self, obj) !=
继承与派生
子类的初始化方法_init_()会覆盖掉父类的初始化方法,可用父类名来调用父类的初始化方法。
在子类里,只有其父类的初始化方法_init_() 正常调用了,该方法里定义的对象属性才能继承到子 类里,否则,不会被继承。
私有化
变量前加双下划线。只有在类里可以调用私有化属性,而在类外不能调用。