【问题标题】:Can I set a function as a default argument?我可以将函数设置为默认参数吗?
【发布时间】:2019-09-02 23:20:20
【问题描述】:

我最近发现一个函数可以这样使用:

def func():
    print("Hello World!")


def run_func(name_of_func):
    name_of_func()


run_func(func)  # Prints "Hello World!"

函数名用作参数。所以我的问题是在这种情况下是否可以使用默认参数。更具体地说,如果在没有参数的情况下调用run_func(),是否可以有一个默认参数,以便我的程序不输出任何内容并结束而不引发错误?

有类似的函数用于调度函数并循环它。但是在调用函数的时候,必须要放一个参数,否则会报错(基本上没有默认参数)。

【问题讨论】:

  • 你为什么不直接尝试而不是发布问题?
  • can there be a default argument so my program outputs nothing and ends without raising an error? - 默认为callable

标签: python function arguments default-arguments


【解决方案1】:

是的。

def func():
    print("Hello World!")


def run_func(name_of_func=func):
    name_of_func()


run_func()  # Prints "Hello World!"

有时玩一些东西并尝试一下是件好事。 :)

【讨论】:

  • 啊,是的。我应该这样做的。无论如何感谢您的回答!在将来提问之前,我会尝试解决我的问题!
【解决方案2】:

考虑以下几点:

def foo(x = 0):
    print(x + 5)

foo(10)
foo()

输出将是: 10 5 这是因为 0 是函数的默认参数

在您的情况下,您可以尝试以下方法:

def func():
    print("Hello World!")

def run_func(x = func):
    func()

那么当你调用 run_func() 时不带任何参数,只要函数 'func' 被实际定义,你就不会得到任何错误。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    • 2014-04-25
    相关资源
    最近更新 更多