我使用类型生成对象以使用以前编写的一些代码
# Assume that myAppObjDict is already initialized.
myAppObj=type("myAppClass", (object,),myAppObjDict)
现在我想在其中添加一个方法,例如myValue(),这样如果我应该能够调用
value=myAppObj.myValue()
该方法应该是什么?
答案 0 :(得分:5)
在创建类之前,您应该将方法添加到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)
答案 1 :(得分:2)
您应该能够在创建后为该类分配任何功能:
def method(self):
print self.__class__.__name__
def my_class (object):
pass
my_class.method = method
o = my_class()
o.method()
您可以随时执行此分配,并且所有对象都将添加新方法,已创建的事件。
毕竟,Python是一种动态语言:)