提问人:Pedro Contipelli 提问时间:11/7/2023 最后编辑:Pedro Contipelli 更新时间:11/8/2023 访问量:56
如何编写一个不做任何事情的默认参数回调函数?[蟒蛇]
How to write a default parameter callback function that does nothing? [Python]
问:
我有时想将回调函数作为参数传递给 。但是,我希望默认行为什么都不做。my_function
我发现自己想要编写以下无效代码行:
def my_function(args, callback_function=pass):
# do something
callback_function()
但这行不通,所以我想出的最有效的解决方案是:
def do_nothing():
pass
def my_function(args, callback_function=do_nothing):
# do something
callback_function()
有没有更干净的方法来做到这一点,更像是上面的第一个例子?
答:
2赞
CDubyuh
11/7/2023
#1
呼叫“无”应该可以满足您的要求。“pass”是一个关键字,不能像那样调用。None 是默认值,可以使用 lambda 应用。
def my_function(args, callback_function=lambda: None):
# do something
callback_function()
评论
0赞
juanpa.arrivillaga
11/7/2023
我实际上认为这不如 OP 干净。
1赞
CDubyuh
11/7/2023
是的,像其他答案一样包含 if 语句可能是完成 OP 要求的更“正确”的方式。这只是试图保留示例中提到的单行主题。
2赞
Daweo
11/7/2023
#2
您可以选择接受,并且仅在不是时才调用,即None
callback_function
None
def my_function(args, callback_function=None):
# do something
if callback_function is not None:
callback_function()
评论
my_function
if callback_function: callback_function()