__doc__
- 表示类的描述信息
class Foo:
"""描述信息........"""
def func(self):
pass
print(Foo.__doc__)
__modul__
和__class__
- __module__表示当前操作的对象在那个模块
- __class__表示当前操作的对象的类是什么
test.py
class Person(object):
def __init__(self):
self.name = 'laowang'
main.py
from test import Person
obj = Person()
print(obj.__module__) # 输出test, 即: 输出模块
print(obj.__class__) # 输出test.Person 即:输出类
__init__
- 初始化方法, 通过类创建对象时, 自动触发执行
class Person():
def __init__(self, name):
self.name = name
obj = Person('laowang') # 自动执行类中的__init__方法
__del__
- 当对象在内存中被释放时, 自动触发执行
__call__
- 对象后面加括号,触发执行
__init__方法的执行是由创建对象触发的, 即: 对象 = 类名() ; 而对于__call__方法的执行是由对象后加括号触发的
class Foo:
def __init__(self):
pass
def __call__(self, *args, **kwargs):
print('__call__')
foo = Foo()
foo()
__dict__
- 检查类中的所有属性
class Province(object):
coutry = 'China'
def __init__(self, name, count):
self.name = name
self.count = count
def func(self, *args, **kwargs):
print('func')
# 获取类的属性, 即: 类属性,方法
print(Province.__dict__)
obj1 = Province('山东', 10000)
print(obj1.__dict__)
__str__
- 如果一个类中定义了__str__方法, 那么在打印对象时, 默认输出该方法的返回值
class Foo():
def __str__(self):
return 'laowang'
obj = Foo()
print(obj) # laowang