如何从独立函数python调用任意对象方法

2024-10-05 17:34:29 发布

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

我想调用名相同的不同类的方法,目的是能够在不同的django模型上调用save()或delete()(当然所有django模型都有相同的方法)。我试过:

class X(object):
    def __init__(self, value):
        self.value = value

    def double(self):
        self.value = self.value * 2

    def triple(self):
        self.value = self.value * 3


def testcallback(obj, callback):
    return obj.callback

不管怎么说都不管用

In [26]: y = testcallback(x, triple)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-26-09fc8db1d48b> in <module>()
----> 1 y = testcallback(x, triple)

NameError: name 'triple' is not defined

In [31]: y = testcallback(x, triple())
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-31-5a7a2dd91850> in <module>()
----> 1 y = testcallback(x, triple())

NameError: name 'triple' is not defined

我一直对不同的相关模型进行相同的检查,然后根据它们来自哪个窗体来保存或删除。如何将任意对象和方法名发送到函数中,然后调用在python中选择的对象上选择的方法?谢谢


Tags: django方法in模型selfobjmostvalue