python特殊成员函数
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中不想用户删除某些键,将其设为对象,然后进行索引操作)
1 class C(object): 2 def __init__(self): 3 self.data={} 4 5 def __getitem__(self, key): 6 self.data.get(key) 7 print('__getitem__',key) 8 9 def __setitem__(self, key, value): 10 self.data[key]=value 11 print('__setitem__', key, value) 12 13 def __delitem__(self, key): 14 self.data.pop(key) 15 print('__delitem__', key) 16 17 obj = C() 18 19 obj['k2'] = 'alex' # 自动触发执行 __setitem__ 20 print(obj.data) 21 result = obj['k2'] # 自动触发执行 __getitem__ 22 print(obj.data) 23 del obj['k2'] # 自动触发执行 __getitem__ 24 print(obj.data)