当前位置: 首页 > 知识库问答 >
问题:

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

田嘉慕
2023-03-14

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

例如,此lambda函数产生True:

bool(lambda x:[])
True

共有3个答案

况明贤
2023-03-14

只有文档中真值测试中指定的对象,以及其\uuuu bool\uuuu\uuuu len\uuu方法分别返回False0的对象,才是虚假对象

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

越朗
2023-03-14

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
何甫
2023-03-14

不,您不能使用纯lambda表达式来实现这一点。

lambda x:[]

是那种类型的

<class 'function'>

正如文件所说,没有任何类型的东西会被证明是虚假的——所以它会被证明是真实的;i、 e.将其传递给bool将返回True

如果你想要一个函数(可调用函数),它的计算值为False,我会完全按照khelwood的回答所描述的去做。

 类似资料:
  • 检查给定的参数是否是一个原生的布尔值。 使用 typeof 来检查一个值是否为一个布尔值。 const isBoolean = val => typeof val === 'boolean'; isBoolean(null); // false isBoolean(false); // true

  • 问题内容: 如何检查布尔值是否为null?因此,如果我知道“ hideInNav”为空。如何阻止它进一步执行?像下面这样的东西似乎不起作用,但是为什么呢? 问题答案: 只能是或因为它是原始数据类型(+ 变量的默认值为)。如果要使用值,则可以改用类。布尔是一种引用类型,这就是您可以分配给布尔“变量”的原因。例:

  • 因此,我想知道是否有一个利索的方法来做这件事,除了

  • c (当用于布尔值时) 该内建函数从 FreeMarker 2.3.20 版本开始存在 该内建函数将布尔值转换为字符串,针对 "计算机语言" 而不是用户。不管 boolean_format 的设置是什么, 结果是 "true" 或 "false"。 当生成JavaScript的时候,应该会用到它,否则修改 boolean_format 的话可以打断生成的计算机语言输出。 请注意,该内建函数 对字符

  • 问题内容: 当我运行下面的代码时,它显示如下。为什么不是x’x’而是一个布尔值?这仅发生在传递给使用lambda调用的函数的第一个参数时。 错误y / home / me / model / some_file 问题答案: 导致该问题的原因是,传递了一个布尔值,该布尔值指示是否已被检查。适当的事情是使用参数来使用该参数:

  • 问题内容: 嗨,在Java中这样的事情是可能的吗? 澄清。上面的作品,但首先分配false。我想要实现的是尽快将其返回并随后将其重置。 结构看起来像这样: 我当时正打算一次过 问题答案: 不,没有内置功能可以满足您的描述。您可以使用一个临时变量来完成此操作: 或者根据您对问题的 进一步 编辑( “结构看起来像这样”) ,可以使用: 我 真的,真的不会那样做 。不必要的钝。