Python函数总是返回相同的布尔值

enr*_*cis 4 python functional-programming return

在函数式编程有时是有用的,以有一个功能,总是返回True(或False)对于每个参数(或甚至多个参数).

是否有某个模块中定义的内置函数或函数具有这种确切的行为?

enr*_*cis 8

我不知道任何内置,但您可以将它们定义为:

false = lambda *_: False
true  = lambda *_: True
Run Code Online (Sandbox Code Playgroud)

  • 这个语法有两点需要详述.首先,星号用于传递任意数量的参数,通常记为`def myfunc(*args):`(也适用于lambdas).更正确的版本将使用`(*args,**kwargs)`来捕获关键字参数.要详细说明的第二件事是使用未命名的变量`_`来表示我们不使用该参数.因此,那些lambda接受任意数量的(nonkeywor)参数并将它们全部丢弃,这就是`*_`. (2认同)
  • @Jasper:DainDwarf是对的,只有一个注释:`_`是python中的有效变量标识符,并且没有特殊的语法(即它不丢弃任何东西),它通常用于你不关心的变量因为没有人能够写出像`_ + _*_`而不是`x + x*x`这样的东西. (2认同)