我正在尝试写一个高阶函数,它的参数数量是可变的。
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,但我认为我对它的理解还不够透彻,也没有找到在不更改这两个函数的情况下使用它的方法
2条答案
按热度按时间h6my8fg21#
您可以只使用 * 来定义多个参数。
另外,关于函数和python中面向对象编程的更多详细信息,您可以参考link
在线提供了许多其他资源供您学习
kokeuurv2#
定义
higher
并调用fnc
,如下所示:在
higher
的主体中,args
是在fnc
之后传递的位置参数的元组。调用fnc(*args)
会将该元组扩展为各个位置参数 * 到 *fnc
。