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

深入挖掘python if语句[重复]

戚宏浚
2023-03-14

这可能是一个非常愚蠢的问题,但我在其他任何地方都找不到答案,我已经看过了,但是我找不到与我的问题相关的答案。

问题:

在python中,不知道其他语言,每当我们调用一个内置类的if语句时,它会返回if语句解释的内容,例如,

a = 0
if a: print("Hello World")

如果为False,则上述语句不会将任何内容打印为。现在哪个方法返回它是False,或者有if语句调用的方法来知道它??

或者更准确地说,if语句如何在Python中更深层次地工作?


共有3个答案

马绪
2023-03-14

在Python中,布尔值(if-else条件的结果)通常被解释为整数0和1。0为假,1为真。

在您的例子中,您将a的值指定为0,python将其解释为False,因此它不会打印任何内容。

Python中的一个简单规则是,空容器(list、dict、set、tuple、str)或None或Number(int/float)为0将被视为False。任何大于0或0.0000的数字都将被视为真。

施自珍
2023-03-14

好问题!这与if语句无关。相反,它是对象本身。

如果对象定义了内置方法\uuu bool\uuu,它可以决定它是“truthy”还是“false”(即返回true还是false)。

有关更多详细信息,请参阅此答案,或参阅官方Python文档

下面是一个狗类的快速示例,如果它没有名字,则为False

class Dog:
    def __init__(self, name):
        this.name = name

    def __bool__(self):
        return this.name != ""

dog1 = Dog("")
dog2 = Dog("Foo")
if (dog1): print("dog1")
if (dog2): print("dog2")
> dog2
施靖
2023-03-14

对象具有\uuu bool\uuu方法,当需要将对象视为布尔值时,会调用这些方法。您可以通过一个简单的测试看到:

class Test:
    def __bool__(self):
        print("Bool called")
        return False

t = Test()
if t:   # Prints "Bool Called"
    pass

bool(0)给出了False,因此0被认为是一个“False”值。

一个类也可以根据它的报告长度被认为是真实的或虚假的:

class Test:
    def __len__(self):
        print("Len called")
        return 0

t = Test()
if t:
    pass
 类似资料:
  • 本文向大家介绍深入分析python数据挖掘 Json结构分析,包括了深入分析python数据挖掘 Json结构分析的使用技巧和注意事项,需要的朋友参考一下 json是一种轻量级的数据交换格式,也可以说是一种配置文件的格式 这种格式的文件是我们在数据处理经常会遇到的 python提供内置的模块json,只需要在使用前导入即可   你可以通过帮助函数查看json的帮助文档 json常用的方法有load

  • 前言 当了解了智能硬件的各个方面的知识点,可以正式开始硬件漏洞挖掘。

  • 本文向大家介绍Python 类与元类的深度挖掘 II【经验】,包括了Python 类与元类的深度挖掘 II【经验】的使用技巧和注意事项,需要的朋友参考一下   上一篇解决了通过调用类对象生成实例对象过程中可能遇到的命名空间相关的一些问题,这次我们向上回溯一层,看看类对象本身是如何产生的。   我们知道 type() 方法可以查看一个对象的类型,或者说判断这个对象是由那个类产生的:   通过这段代码

  • 主要内容:比特币挖掘,比特币矿工的角色,比特币区块链是如何建造的?要了解比特币矿工的作用,我们首先了解比特币挖掘。 比特币挖掘 比特币挖掘是将交易记录添加到比特币过去交易的公共分类账的过程。过去交易的分类账称为区块链,因为它是一系列区块。比特币挖掘用于保护和验证交易到网络的其余部分。 示例 当Bob为Lisa创建购买请求时,他不会单独将其发送给Lisa。请求消息在他所连接的整个网络上广播。Bob的网络以图像形式描绘。 消息将传递到所有连接的节点(计算机)。图中的

  • 下面的命令可以被用来指导首先决定哪些FreeRADIUS包被安装了和临时决定包中包含哪些文件. dpkg系统 显示所有FreeRADIUS安装的包: $> dpkg -l | grep radius 使用

  • 数据挖掘 18 大算法实现以及其他相关经典 DM 算法,BIRCH 算法本身上属于一种聚类算法,不过他克服了一些 K-Means 算法的缺点。