我的观点是您可能希望考虑一个子类,而不是您概述的方法。但是,不知道您的具体情况,YMMV :-)
您正在考虑的是元类。
__new__元类中的函数将传递该类的完整建议定义,然后可以在创建类之前将其重写。那时,您可以将构造函数细分为一个新的。
例:
def substitute_init(self, id, *args, **kwargs): passclass Foometa(type): def __new__(cls, name, bases, attrs): attrs['__init__'] = substitute_init return super(Foometa, cls).__new__(cls, name, bases, attrs)class Foo(object): __metaclass__ = Foometa def __init__(self, value1): pass
替换构造函数可能有点麻烦,但是语言确实为这种深入的内省和动态修改提供了支持。



