我正在使用 type 生成对象,以使用以前编写的一些代码
# Assume that myAppObjDict is already initialized.
myAppObj=type("myAppClass", (object,),myAppObjDict)
现在我想在其中添加一个方法说 myValue() 以便我应该能够调用
value=myAppObj.myValue()
应该采取什么方法?
我正在使用 type 生成对象,以使用以前编写的一些代码
# Assume that myAppObjDict is already initialized.
myAppObj=type("myAppClass", (object,),myAppObjDict)
现在我想在其中添加一个方法说 myValue() 以便我应该能够调用
value=myAppObj.myValue()
应该采取什么方法?
myAppObjDict
您应该在创建类之前添加方法:
def myValue(self, whatever):
pass
myAppObjDict['myValue'] = myValue
# Assume that myAppObjDict is already initialized.
myAppObj=type("myAppClass", (object,),myAppObjDict)
或者定义一个包含方法的基类并将其包含在基类元组中。
class MyBase(object):
def myValue(self): return 42
# Assume that myAppObjDict is already initialized.
myAppObj=type("myAppClass", (MyBase,),myAppObjDict)
您应该能够在创建后将任何功能分配给类:
def method(self):
print self.__class__.__name__
def my_class (object):
pass
my_class.method = method
o = my_class()
o.method()
您可以随时执行此分配,并且所有对象都将添加新方法,事件已经创建。
毕竟,Python 是一种动态语言 :)