下面给出了我的程序结构
def method_1(new_parameters):
...
def method_2(new_parameters):
...
def calculation(parameters):
......
new_parameters = generate_new_params
method_call = method_1(**new_parameters)
if __name__ =="__main__":
......
output = calculation(parameters)代码运行良好。我必须运行程序2次,才能得到基于2种方法的输出。首先,我使用method_1(**new_parameters)和第二次method_2(**new_parameters)运行程序。
如果我想一个接一个地调用这两个方法(可能使用loop),那么我如何编写代码呢?
比如说,
if __name__ =="__main__":
Methods = {"method-1": method_1, "method-2": method_2}
......
for method in Methods:
output = calculation(parameters)我已经看过一些帖子(this和this),但没有任何想法。在这里,我需要从def calculation()调用函数,但我必须从main传递函数。
发布于 2021-06-05 19:10:47
我只需将函数作为参数传递给calculation函数,如下所示:
def method_1(new_parameters):
...
def method_2(new_parameters):
...
def calculation(parameters, method_name, method):
......
new_parameters = generate_new_params
method_call = method(**new_parameters)
if __name__ =="__main__":
......
output = calculation(parameters)然后做这样的循环:
if __name__ =="__main__":
Methods = {"method-1": method_1, "method-2": method_2}
......
for key, value in Methods.items():
output = calculation(parameters, key, value)发布于 2021-06-05 19:09:41
我不能清楚地理解你的问题,但我能猜出来。
尝尝这个。
def calculation(mt, parameters):
......
new_parameters = generate_new_params
method_call = mt(**new_parameters)
if __name__ =="__main__":
Methods = {"method-1": method_1, "method-2": method_2}
......
outputs = [calculation(method, parameters) for key, method in Methods.items()]发布于 2021-06-05 19:08:50
您是指将一个函数作为参数传递给另一个函数,然后调用它吗?这被称为高阶函数。所以就像这样。
def method_1(new_parameters):
...
def method_2(new_parameters):
...
def calculation(parameters, callback):
......
new_parameters = generate_new_params
callback_result = callback(**new_parameters)
if __name__ =="__main__":
......
output1 = calculation(parameters, method_1)
output2 = calculation(parameters, method_2)https://stackoverflow.com/questions/67853055
复制相似问题