在Python中将pass赋值给函数

8 投票
6 回答
2812 浏览
提问于 2025-04-16 12:39

我有一段代码,里面定义了一个函数,这个函数可以接收另一个函数作为参数,像这样:

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

撰写回答