我可以将函数设置为默认参数吗?
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' 被实际定义,你就不会得到任何错误。
希望这对您有所帮助。
最近发现一个函数可以这样用:
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' 被实际定义,你就不会得到任何错误。
希望这对您有所帮助。