1.__init__():构造函数
2.__del__():析构函数
3.print(__doc__):打印描述信息
4.print(Dog.__module__):类来自的模块
5.print(d1.__class__) :对象属于哪个类
6.__call__(self, *args, **kwargs):对象(),()带位置参数或关键字参数
def __call__(self, *args, **kwargs):
print(self.name,args,kwargs) d1=Dog('lele')
d1(1,2,3,4,month=13,sex='mu')
7.__str__:以规定的格式打印 对象
print(d1)
<__main__.Dog object at 0x0000024D9871EF28>
定义__str__后:
def __str__(self): #以规定的格式打印 对象
return "<obj:%s>"%self.name
print(d1)
<obj:lele>
8.__getitem__,__setitem__,__delitem__:用于索引操作,如字典(Django中不想用户删除某些键,将其设为对象,然后进行索引操作)
class C(object):
def __init__(self):
self.data={} def __getitem__(self, key):
self.data.get(key)
print('__getitem__',key) def __setitem__(self, key, value):
self.data[key]=value
print('__setitem__', key, value) def __delitem__(self, key):
self.data.pop(key)
print('__delitem__', key) obj = C() obj['k2'] = 'alex' # 自动触发执行 __setitem__
print(obj.data)
result = obj['k2'] # 自动触发执行 __getitem__
print(obj.data)
del obj['k2'] # 自动触发执行 __getitem__
print(obj.data)