python 魔法方法
1, __doc__ 描述类的属性
class New(object): """describe for New""" def function(self): pass print(New.__doc__)
2, __class__ 查看类是由谁创建的!
class New(object): """describe for New""" def function(self): pass print(New.__doc__)
3,__module__ 查看当前操作的对象在哪个模块
class New(object): """describe for New""" def function(self): pass print(New.__module__)
4,__dict__ 查看类或者对象的所有属性,dir() 就是调用这个方法
class New(object): """describe for New""" def function(self): pass print(New.__dict__)
5,__init__ 给初始化属性赋值的方法,并不是创建对象
class ClassName(object): """docstring for ClassName""" def __init__(self, arg): self.arg = arg
6,__new__ 这个是创建对象的方法
class New(object): """describe for New""" def __new__(cls): return self # 返回的是本身 先创建类,才创建对象
7,__call__ 方法的执行是由对象后加括号触发的
class ClassName(object): def __call__(self): print('hello world') print(ClassName()) #类名加对象执行 __call__ 方法
8,__getitem__、__setitem__、__delitem__ 用于索引操作字典,以上分别表示获取、设置、删除数据
class Foo(object): def __getitem__(self, key): print('__getitem__', key) def __setitem__(self, key, value): print('__setitem__', key, value) def __delitem__(self, key): print('__delitem__', key) obj = Foo() result = obj['k1'] # 自动触发执行 __getitem__ obj['k2'] = 'laowang' # 自动触发执行 __setitem__ del obj['k1']