我可以将函数设置为默认参数吗?

Can I set a function as a default argument?

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

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


def run_func(name_of_func):
    name_of_func()


run_func(func)  # Prints "Hello World!"

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

有类似的函数用于调度函数和循环它。但是调用函数的时候必须要传入参数否则会报错(基本上没有默认参数)

是的。

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


def run_func(name_of_func=func):
    name_of_func()


run_func()  # Prints "Hello World!"

有时候玩玩并尝试一下是件好事。 :)

考虑以下几点:

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' 被实际定义,你就不会得到任何错误。

希望这对您有所帮助。