1、类的声明
语法:
class MainWindow:
"""class information
"""
pass # class body
2、特殊方法
2.1 init
构造函数,类会调用该方法构造对象。
语法:
class Test:
def __init__(self, args...):
pass
2.2 del
析构函数,在对象销毁时调用。
语法:
def __del__(self):
pass
2.3 str
将对象转为适合人读的字符串
语法:
def __str__(self):
pass
2.4 cmp
对象比较
语法:
def __cmp__(self, x):
pass
3、创建对象
使用函数式调用的方法创建对象。
语法:
obj = class_name(args...)
4、访问对象
使用.
操作符访问、添加、修改对象属性。
语法:
obj.age = 14 # 添加
obj.age = 17 # 修改
del obj.age # 删除
5、内置类属性
属性名 | 描述 |
---|---|
__dict__ | 类的所有属性字典 |
__doc__ | 类的文档字符串 |
__name__ | 类名 |
__module__ | 类定义所在模块 |
__bases__ | 类的所有父类元组 |
6、垃圾回收
python
使用引用计数实现对象销毁和垃圾回收。
当对象引用计数为0时,解释器会在合适的时机,销毁对象,回收占用的内存空间。
7、继承
语法:
class sub_class(parent1, parent2, ...):
pass
如果子类的构造器需要使用父类的构造器,那么需要显式调用父类的构造器super().__init__(args..)
。
子类调用父类方法有两种:使用super().method(args..)
调用父类方法和类名调用父类方法Parent.method(self, args...)
。
8、python运算符重载
运算符 | 重载函数 |
---|---|
+ |
__add__(self, p2) |
- |
__sub__(self, p2) |
* |
__mul__(self, p2) |
求幂** |
__pow__(self, p2) |
/ |
__truediv__(self, p2) |
整除// |
__floordiv__(self, p2) |
取余% |
__mod__(self, p2) |
<< |
__lshift__(self, p2) |
>> |
__rshift__(self, p2) |
& |
__and__(self, p2) |
| |
__or__(self, p2) |
^ |
__xor__(self, p2) |
~ |
__invert__(self, p2) |
9、python比较运算符重载
比较运算符 | 重载函数 |
---|---|
< |
__lt__(self, p2) |
<= |
__le__(self, p2) |
== |
__eq__(self, p2) |
!= |
__ne__(self, p2) |
> |
__gt__(self, p2) |
>= |
__ge__(self, p2) |
10、保护与私有属性
单下划线开头的属性声明为protected
,只能子类访问,外部不能访问;
双下划线开头的属性声明为private
,只能本类访问,子类和外部均不能访问。