【发布时间】:2013-05-14 13:49:07
【问题描述】:
class MyClass:
def __init__(self, i):
self.i = i
def get(self):
func_name = 'function' + self.i
self.func_name() # <-- this does NOT work.
def function1(self):
pass # do something
def function2(self):
pass # do something
这给出了错误:TypeError: 'str' object is not callable
我该怎么做呢?
注意:self.func_name 也不起作用
【问题讨论】:
-
根据您的使用情况,您最好使用函数列表/字典,或者使用 lambda 函数将附加参数传递给函数(后者主要用于回调)。
-
这不是您收到此错误的代码。当您执行
self.func_name时,您甚至无法访问局部变量func_name。您正在尝试访问self内部名为class name的实例变量 - 但这样的变量不存在。 -
@Elazar 是的,我的错。我正在翻译代码,错过了这个。
-
本题与3061题有细微差别。本题重点介绍类中的方法调用。 3061专注于常规功能。 Python 新手可能无法将那里写的答案应用于这种情况。
-
投票重新开放。我被称为新手,我完全不明白这是如何与链接问题重复。
标签: python