类的特殊成员方法

 

 

 

1.__doc__ :打印类的描述信息

class Foo:
    """ 描述类信息,这是用于看片的神奇 """
 
    def func(self):
        pass
 
print Foo.__doc__
#输出:类的描述信息

 

2.__module__:表示当前操作的对象在那个模块

class C:

    def __init__(self):
        self.name = 'wupeiqi'

 

3.__class__表示当前操作的对象的类是什么

from lib.aa import C

obj = C()
print obj.__module__  # 输出 lib.aa,即:输出模块
print obj.__class__      # 输出 lib.aa.C,即:输出类

 

4. __init__ :构造方法,通过类创建对象时,自动触发执行

class Role(object):    
#初始化函数,在生成一个角色时要    初始化的一些属性就填写在这里    
    def __init__(self,name,role,weapon,life_value=100,money=15000):
        
#__init__中的第一个参数self,和这里的self都 是什么意思? 看下面解释
self.name = name
        self.role = role

 

5.__del__:析构方法,当对象在内存中被释放时,自动触发执行

class Role(object):
    def __init__(self,name,role,weapon:
        self.name = name
        self.role = role
        self.weapon = weapon

    def __del__(self):             #析构函数
        print("del.....run...")
r1 = Role('Alex','police','AK47')    #生成一个角色

 

6.__call__:对象后面加括号,触发执行

#注:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()
class Foo:
 
    def __init__(self):
        pass
     
    def __call__(self, *args, **kwargs):
 
        print '__call__'
 
obj = Foo() # 执行 __init__
obj()       # 执行 __call__
class _Getch:
    def __init__(self):
        self.impl = _GetchUnix()
        
    def __call__(self): return self.impl()
巧妙用法1

相关文章: