Lin*_*des 8 python function optional-parameters optional-arguments
我有一段代码定义了一个函数,它将函数作为参数,如下所示:
def stuff(n, f):
f(n)
Run Code Online (Sandbox Code Playgroud)
现在,我想提供一些什么都不做的f的默认值.所以我想我会使用pass,就像这样:
def stuff(n, f = None):
if(f is None):
f = pass
f(n)
Run Code Online (Sandbox Code Playgroud)
但这不编译.我该怎么做?
Kei*_*ith 19
这pass是解释者的关键词,没有其他任何东西的占位符.它不是您可以分配的对象.你可以使用no-op lambda.
f = lambda x: None
Run Code Online (Sandbox Code Playgroud)
为什么不简单呢?
def stuff(n, f=None):
if f is None:
return
return f(n)
Run Code Online (Sandbox Code Playgroud)
稍短一些:
def stuff(n, f=None):
f = f or (lambda x: None)
f(n)
Run Code Online (Sandbox Code Playgroud)
甚至更好:
def stuff(n, f=None):
f(n) if f is not None else None
Run Code Online (Sandbox Code Playgroud)