我有一个名为“App”的类,它有几个方法。我想编写一个函数来创建 App 的多个实例,并为每个实例使用其中一种方法。如何将方法名称作为参数传递给函数?
代码示例:
class App(object):
def __init__(self, id):
self.id = id
def method_1(self):
result1 = self.id + 1
return result1
def method_2(self):
result2 = self.id + 2
return result2
def use_method_for_each_instance(method):
all_results = []
for id in id_list:
app_instance = App(id)
all_results.append(app_instance.method())
return all_results
id_list = [1,2,3]
use_method_for_each_instance(method_1)
使用这段代码,我得到“NameError: name 'method_1' is not defined”,这是合乎逻辑的,因为 method_1 仅在创建“App”对象时定义。 您能帮我更改代码以避免该错误吗?
请您参考如下方法:
您可以使用类命名空间中的函数。
def use_method_for_each_instance(method):
all_results = []
for id in id_list:
app_instance = App(id)
all_results.append( method(app_instance) )
return all_results
id_list = [1,2,3]
use_method_for_each_instance(App.method_1)
