首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有可变参数的Python高阶函数

具有可变参数的Python高阶函数
EN

Stack Overflow用户
提问于 2022-11-17 23:58:01
回答 2查看 25关注 0票数 0

我试图写一个高阶函数,它包含不同数量的参数。例如,像这样的事情

代码语言:javascript
复制
def higher(fnc, args):
    print(f"Calling function {fnc}")
    fnc(argv)

def one_arg(only_arg):
    print(f"Here is the only arg {only}")

def two_arg(first, second):
    print(f"Here is the first {first} And here is the second {second}")

higher(one_arg, "Only one argument")
higher(two_arg, "Here's one arg", "and Another one")

在不更改函数one_arg()或two_arg()的情况下,可以做到这一点吗?

我已经研究过使用*argv,但是我认为我还不够理解它,也没有找到一种不用改变这两个函数就可以使用它的方法

EN

回答 2

Stack Overflow用户

发布于 2022-11-18 00:01:27

您只需使用*来定义多个args。

代码语言:javascript
复制
def higher(fnc, *args):
    print(f"Calling function {fnc}")
    fnc(*args)

def one_arg(only_arg):
    print(f"Here is the only arg {only_arg}")

def two_arg(first, second):
    print(f"Here is the first {first} And here is the second {second}")

higher(one_arg, "Only one argument")
higher(two_arg, "Here's one arg", "and Another one")

此外,有关python中的函数和面向对象编程的更多细节,请参阅此链接

网上有更多的额外资源可供您学习。

票数 1
EN

Stack Overflow用户

发布于 2022-11-18 00:01:10

定义higher并按如下方式调用fnc

代码语言:javascript
复制
def higher(fnc, *args):
    print(f"Calling function {fnc}")
    fnc(*args)

higher的主体中,args是在fnc之后传递的位置参数的元组。调用fnc(*args)将元组扩展为单个位置参数到fnc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74483499

复制
相关文章

相似问题

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