【发布时间】:2019-10-30 02:04:41
【问题描述】:
我正在尝试创建一个带有可选参数的函数,callback,它必须是一个函数。
我希望这个函数的默认值是空的 - 即一个什么都不做的函数。对我来说似乎有意义的方式是:
do_the_thing()
do_the_thing(callback = print) # or message.respond, or log_to_file, etc
def do_the_thing(**kwargs):
cb = kwargs.get('callback', lambda x: pass)
# do things
cb("Things have been done.")
但我在“pass”结尾处遇到语法错误。
解决这个问题的正确方法是什么?
【问题讨论】:
-
只需使用
cb = kwargs.get('callback', lambda _: None)。这是必要的,因为pass是一个语句,而不是lambda需要的表达式。您也可以使用def do_the_thing(callback=lambda _: None):,而无需使用kwargs.get()(只需使用callback("Things have been done."))。
标签: python python-3.x lambda syntax-error