首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用循环调用多个函数?

如何使用循环调用多个函数?
EN

Stack Overflow用户
提问于 2021-06-05 19:04:19
回答 4查看 1.1K关注 0票数 1

下面给出了我的程序结构

代码语言:javascript
复制
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),那么我如何编写代码呢?

比如说,

代码语言:javascript
复制
if __name__ =="__main__":
    Methods = {"method-1": method_1, "method-2": method_2}
    ......
    for method in Methods:
        output = calculation(parameters)

我已经看过一些帖子(thisthis),但没有任何想法。在这里,我需要从def calculation()调用函数,但我必须从main传递函数。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-06-05 19:10:47

我只需将函数作为参数传递给calculation函数,如下所示:

代码语言:javascript
复制
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)

然后做这样的循环:

代码语言:javascript
复制
if __name__ =="__main__":
    Methods = {"method-1": method_1, "method-2": method_2}
    ......
    for key, value in Methods.items():
        output = calculation(parameters, key, value)
票数 0
EN

Stack Overflow用户

发布于 2021-06-05 19:09:41

我不能清楚地理解你的问题,但我能猜出来。

尝尝这个。

代码语言:javascript
复制
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()]
票数 1
EN

Stack Overflow用户

发布于 2021-06-05 19:08:50

您是指将一个函数作为参数传递给另一个函数,然后调用它吗?这被称为高阶函数。所以就像这样。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67853055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档