Python lambda函数的布尔值是否为false?

Python lambda函数的布尔值是否为false?,python,python-3.x,Python,Python 3.x,lambda函数在给定bool函数时是否可能返回假值 例如,此lambda函数产生True: 不,你不能用纯lambda表达式 lambda x:[] 是那种类型的 <class 'function'> 正如我所说的,没有那种类型的东西会被证明是虚假的——所以它会被证明是真实的;i、 e.将其传递给bool将返回True 如果您想要一个计算结果为False的函数a callable,我将完全按照中的描述执行。不,您不能使用纯lambda表达式来执行 lambda x:[] 是那

lambda函数在给定bool函数时是否可能返回假值

例如,此lambda函数产生True:


不,你不能用纯lambda表达式

lambda x:[]
是那种类型的

<class 'function'>
正如我所说的,没有那种类型的东西会被证明是虚假的——所以它会被证明是真实的;i、 e.将其传递给bool将返回True


如果您想要一个计算结果为False的函数a callable,我将完全按照中的描述执行。

不,您不能使用纯lambda表达式来执行

lambda x:[]
是那种类型的

<class 'function'>
正如我所说的,没有那种类型的东西会被证明是虚假的——所以它会被证明是真实的;i、 e.将其传递给bool将返回True


如果您想要一个计算结果为False的函数,我将完全按照中的描述执行。

只有文档中指定的对象,以及其uu bool_uuu或u len_uu方法分别返回False或0的对象才是falsy对象


其他一切是的,这包括任何lambda都是真实的

只有文档中指定的对象,以及其_ubool_uuuuu或_len_uuu方法分别返回False或0的对象才是伪对象


其他一切是的,这包括任何lambda都是真实的

lambda只是编写函数的另一种方式。与几乎所有事物一样,它们在默认情况下都是真实的。您可以创建一个类,其实例的行为与函数一样,并且本身是错误的。它们不是lambda函数,但没有理由会有问题

例如:

class FalseyFunction:
    def __init__(self, func):
        self.func = func
    def __call__(self, *args, **kwargs):
        return self.func(*args, **kwargs)
    def __bool__(self):
        return False

>>> f = FalseyFunction(lambda x:[])
>>> f(0)
[]
>>> bool(f)
False

lambda只是编写函数的另一种方式。与几乎所有事物一样,它们在默认情况下都是真实的。您可以创建一个类,其实例的行为与函数一样,并且本身是错误的。它们不是lambda函数,但没有理由会有问题

例如:

class FalseyFunction:
    def __init__(self, func):
        self.func = func
    def __call__(self, *args, **kwargs):
        return self.func(*args, **kwargs)
    def __bool__(self):
        return False

>>> f = FalseyFunction(lambda x:[])
>>> f(0)
[]
>>> bool(f)
False

lambda只是编写函数的另一种方式。您可以创建一个行为类似于函数的类,该类本身是错误的,但它不会是lambda函数。因此,函数的求值结果总是为true?默认情况下,函数是truthy的,几乎与所有函数一样。您可以创建自定义的东西,但它不是lambda函数。lambda只是编写函数的另一种方式。您可以创建一个行为类似于函数的类,该类本身是错误的,但它不会是lambda函数。因此,函数的求值结果总是为true?默认情况下,函数是truthy的,几乎与所有函数一样。您可以创建定制的东西,但它不是lambda函数。