通过__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()
相关文章推荐
- python通过__slots__限制类实例动态的增加属性、方法
- python中为类和实例动态增加方法
- AngularJs通过ng-class动态改变样式类实例操作
- 重构到扩展方法(5):动态给实例增加行为
- 通过反射动态调用类的静态方法和实例方法
- java通过反射Class实例调用对象方法
- 【实例】动态调用方法,通过类名
- 通过反射动态调用类的静态方法和实例方法
- 关于android studio中使用class.forname()方法动态获取类实例报NO CLASS FOUND异常的几种处理方法
- 黑马程序员——通过反射Proxy类的静态函数getProxyClass()来获取动态生成类的构造函数和方法
- ASP.NET动态增加HTML元素的方法实例小结
- 通过Ajax+jquery实现的动态增加一组查询条件的实例
- ASP.NET动态增加HTML元素的方法实例小结
- 创建Bean的三种方式 在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法。实际上,Sprin
- jquery 如何动态添加、删除class样式方法介绍
- 利用反射来动态创建实例和调用方法
- jQuery中toggleClass()方法用法实例
- [c#美味] 使用反射动态创建实例并调用方法
- 通过iBatis的queryForMap方法比较resultClass与resultMap
- asp.net表格控件Table(实例动态增加表格)