Python类中的属性和方法大全
文章目录
1.特殊属性:
属性 | 含义 |
---|---|
__name__ | 类,函数,方法等效的名字。即名称 |
__module__ | 类定义所在的模块名称 |
__class__ | 对象或类所属的类 |
__bases__ | 类的基类(父类)的元组,顺序为他们在基类列表中出现的顺序 |
__doc__ | 类、函数的文档字符串,如果没有定义则为None |
__mro__ | 类的mro,class.mro()返回的结果都保存在__mro__中。C3算法帮忙保证类的mro唯一性 |
__dict__ | 类或实例的属性,可写的字典 |
__qualname__ |
类的限定名 |
2.方法
2.1特殊内建函数与查看属性
方法 | 等效的内建函数 | 意义 | ||
---|---|---|---|---|
1. 查看属性 | ||||
__dir__ | dir() | 返回类或者对象的所有成员名称列表 dir()函数操作实例就是调用__dir()__ 如果没有参数,返回当前局部作用域中的名称列表。使用参数时,尝试返回该对象的有效属性列表。 |
||
2. 特殊内建函数 | ||||
locals() | 返回当前作用域中的变量字典 | |||
globals() | 当前模块全局变量的字典 |
2.2实例化
方法 | 意义 |
---|---|
__new__(self,*args,**kwargs) | 示例化一个对象 该方法需要返回一个值,如果该值不少cls的实例,则会调用__init__ 该方法永远都是静态方法 调用new方法前还没有实例对象,正常调用完成后会生成实例对象。 |
__init__(self) | 对实例进行初始化,通常用来设置实例属性,基本配置信息等。 调用init方法前已经存在实例对象 |
__del__(self) | 实例的引用次数为0时调用。即删除实例时调用。 当系统自动调用del方法后实例已经没有对象记录,等着垃圾回收gc来清理。 |
2.3可视化
方法 | 等效的内建函数 | 含义 |
---|---|---|
__str__(self) | str() | str()函数、format()函数、print()函数调用,需要返回对象的字符串表达式。如果没有定义,就去调用__repr__方法返回字符串的表达。如果__repr__没有定义,就直接返回对象的内存地址信息 |
__repr__(self) |
repr() | 内建函数repr()对一个对象获取字符串表达。 调用 __repr__ 方法返回字符串表达,如果__repr__ 也没有定义,就直接返回object的定义,显示内存地址信息。 |
__bytes__(self) |
bytes() | bytes()函数调用,返回一个对象的bytes表达,即返回bytes对象 |
2.4可哈希(hash)与等等运算符(==)
方法 | 等效的内建函数 | 意义 |
---|---|---|
__hash__(self) |
hash() | 内建函数hash()调用的返回值,返回一个整数。如果定义这个方法该类的实例就可hash。 |
__eq__(self) |
== | 对等等操作符,判断2个对象是否相等,返回值bool值 定义了这个方法,如果不提供 __hash__ 方法,那么实例对象将不可hash了。 |
2.5bool
方法 | 对应的内建函数 | 意义 |
---|---|---|
__bool__(self) |
bool() | 内建函数bool(),或者对象放在逻辑表达式的位置,调整这个函数返回布尔值。 如果对象没有定义 __bool__() ,就找__len__() 返回长度,非0为真如果 __len__() 也没有定义,那么所有实例都返回真 |