我可以提供Python类方法作为参数吗?

时间:2014-09-10 01:52:18

标签: python class oop

我想提供一个类的方法作为参数。以下是我所追求的一个简单例子。

假设我有一些类定义如下:

class TestClass(object):

    def __init__(self):
        self.str1 = [1,2,3,4,5]

现在我想为这个类添加一个新方法,该方法将对该列表执行一些操作。此操作将作为此方法的参数提供。例如,它可能看起来像这样:

def testMethod(self, arg1):
    print self.str1.arg1(1)

arg1是列表类方法。

这个想法是能够以下面的方式调用该方法:

TC = TestClass()
TC.testMethod("index")

期待得到一个结果,因为我会得到:

print self.str1.index(1)

如果按原样运行,我将获得AttributeError例外:

AttributeError: 'list' object has no attribute 'arg1'

注意:这个问题被要求概括另一个问题,我描述了here

1 个答案:

答案 0 :(得分:2)

print getattr(self.str1, arg1)(1)