我可以提供Python类方法作为参数吗?
我想提供一个类的方法作为参数。下面是我所追求的一个简单的例子 假设我有这样定义的类:我可以提供Python类方法作为参数吗?,python,class,oop,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
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'
注意:这个问题是为了概括我描述的另一个问题。我想您正在寻找。将列表实例命名为
str1
(特别是当您在某些地方将其称为“字符串”时)会让人相当困惑。请使用正确的变量名@Blckknght将“字符串”更改为“列表”。但是,无法更改变量名,因为它已出现在下面的可接受答案中。
print getattr(self.str1, arg1)(1)