我想提供一个类的方法作为参数。以下是我所追求的一个简单例子。
假设我有一些类定义如下:
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。
答案 0 :(得分:2)
print getattr(self.str1, arg1)(1)