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

2024-06-26 00:20:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用type生成对象,以便使用以前编写的一些代码

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

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

value=myAppObj.myValue() 

方法应该是什么?你知道吗


Tags: 对象方法代码thatobjectisvaluetype
2条回答

在创建类之前,应将方法添加到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是一种动态语言:)

相关问题 更多 >