无论是人或事物往往都有不按套路出牌的情况,Python
的类属性也是如此,存在着一些具有特殊含义的属性。下面就要我们一起来看一下吧!
__doc__
- 表示类的描述信息
1 | class Foo: |
__module__
和__class__
- __module__ 表示当前操作的对象在那个模块
- __class__ 表示当前操作的对象的类是什么
test.py
1 | # -*- coding:utf-8 -*- |
main.py
1 | from test import Person |
__init__
- 初始化方法,通过类创建对象时,自动触发执行
1 | class Person: |
__del__
- 当对象在内存中被释放时,自动触发执行
注:此方法一般无须定义,因为Python
是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给Python
解释器来执行,所以,__del__
的调用是由解释器在进行垃圾回收时自动触发执行的。
1 | class Foo: |
__call__
- 对象后面加括号,触发执行
注:__init__
方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于__call__
方法的执行是由对象后加括号触发的,即:对象()或者类()()
1 | class Foo: |
__dict__
- 类或对象中的所有属性
类的实例属性属于对象;类中的类属性和方法等属于类,即:
1 | class Province(object): |
__str__
- 如果一个类中定义了
__str__
方法,那么在打印对象时,默认输出该方法的返回值
1 | class Foo: |
__getitem__
、__setitem__
、__delitem__
- 用于索引操作,如字典。以上分别表示获取、设置、删除数据:
1 | # -*- coding:utf-8 -*- |
__getslice__
、__setslice__
、__delslice__
- 该三个方法用于切片操作,如:列表
1 | # -*- coding:utf-8 -*- |