__init__() 构造函数
__new__ () 在构造函数之前,用来创建对象的,返回值是一个对象,__init__指的是将__new__返回的对象作为self来传入函数中,后续参数两者都可以一样。
__dict__ () 关联vars()函数,获取命名空间里面的名称
__str__ () 关联str()函数,输出成员相关信息的内容
__repr__() 关联 repl()函数,同样输出信息,在Python内建类的__repr__()返回的字符串是一个有效的表达式,可以使用evel()来产生一个内含值相同的对象
__all__ 在module模块中指定from import *导出的名称
__class__ 对象的成员属性之一,可以反着得到类信息
__self__ 绑定方法的特定属性,通过绑定函数来获取对应对象的实例
__del__() 对应析构函数,在对象销毁的时候执行一些操作
__name__ 每一个模块都有自己的__name__属性,当执行某模块的时候,__name__属性会被设置为__main__,获取当前模块对象可以使用sys.modules[__name__]
--------------------------------
在python中类似于C++重载运算符:
__add__() 加+
__sub__() 减-
__mul__() 乘*
__turediv__() /
__gt__() >
__ge__() >=
__lt__() <
__le__() <=
__eq__() ==
__comp__() !=
外部属性:
@property 返回类成员值
@name.setter 设置类成员值
@staticmethod 设置静态函数(第一个参数传入的不是self,类只是提供一个命名空间)
@classmethod 第一个参数是接受所在类的type实例。
-------------------------------------
del 既能删除模块名称,也能删除模块中的属性
--------------------------------------
类命名空间里面的对象与类实例命名空间里面的对象是不相同的,但是通过类对象能访问到本不属于类对象本身的名称但属于类的名称。这个过程是:
若尝试通过实例获取属性,而实例的__dict__中没有,则会到产生实例对象的类里面的__dict__中寻找,如果仍然没有找到,就会试着调用__getattr__()来获取,如果没有定义相关__getattr_()方法,就会跑出AttributeError错误。