在python中添加type()生成的对象中的方法

时间:2013-01-23 09:28:00

标签: python python-2.7

我使用类型生成对象以使用以前编写的一些代码

# Assume that myAppObjDict is already initialized.
myAppObj=type("myAppClass", (object,),myAppObjDict)

现在我想在其中添加一个方法,例如myValue(),这样如果我应该能够调用

value=myAppObj.myValue() 

该方法应该是什么?

2 个答案:

答案 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是一种动态语言:)