在Python中将pass赋值给函数
我有一段代码,里面定义了一个函数,这个函数可以接收另一个函数作为参数,像这样:
def stuff(n, f):
f(n)
现在,我想给这个接收函数的参数设置一个默认值,让它什么都不做。所以我想用“pass”这个关键词,像这样:
def stuff(n, f = None):
if(f is None):
f = pass
f(n)
但是这样写会出错。那我应该怎么做呢?
6 个回答
5
稍微简短一点:
def stuff(n, f=None):
f = f or (lambda x: None)
f(n)
或者更好一些:
def stuff(n, f=None):
f(n) if f is not None else None
9
为什么不直接这样做呢?
def stuff(n, f=None):
if f is None:
return
return f(n)
19
pass
是一个给解释器用的关键词,意思是“什么都不做”的占位符。它不是一个可以赋值的对象。你也可以使用一个不做任何事情的 lambda 表达式。
f = lambda x: None