我能设置一个函数作为默认参数吗?

3

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

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


def run_func(name_of_func):
    name_of_func()


run_func(func)  # Prints "Hello World!"

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

有类似的函数用于调度和循环函数。但是,当调用该函数时,必须放入参数,否则将导致错误(基本上没有默认参数)。


5
为什么不直接尝试而非发问呢? - Selcuk
1
我的程序能否有一个默认参数,使其输出为空并在不引发错误的情况下结束?这个默认参数需要是可调用的。 - wwii
2个回答

3
是的。
def func():
    print("Hello World!")


def run_func(name_of_func=func):
    name_of_func()


run_func()  # Prints "Hello World!"

有时候玩一些东西并尝试它们是很好的。 :)


3
啊,是的。我本应该那样做的。无论如何感谢你的回答!我会尝试在提问前先琢磨琢磨问题! - Scene

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'实际上已经被定义,您将不会收到任何错误。
希望这可以帮助到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接