您的位置:首页 > 其它

通过__metaclass__为类动态增加方法实例

2013-01-15 17:00 309 查看
def ma(cls):
print 'method a'

def mb(cls):
print 'method b'

method_dict = {
'ma':ma,
'mb':mb
}

class DynamicMethod(type):
def __new__(cls, name, bases, dct):
if name[:3] == 'Abc':
dct.update(method_dict)
return type.__new__(cls, name, bases, dct)

def __init__(cls, name, bases, dct):
super(DynamicMethod, cls).__init__(name, bases, dct)

class AbcTest(object):
__metaclass__ = DynamicMethod
def mc(self, x):
print x * 3

def main():
a = AbcTest()
a.mc(3)
print dir(a)
a.ma()

main()


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: