如果x :, vs如果x == True,vs如果x为True

如果x :, vs如果x == True,vs如果x为True,第1张

如果x :, vs如果x == True,vs如果x为True

Python中的以下值在

if
和其他逻辑上下文中为false :

  • False
  • None
  • 数值等于0,如
    0
    0.0
    -0.0
  • 空字符串:
    ''
    u''
  • 空容器(例如列表,元组和字典)
  • 实现
    __bool__
    (在Python3中)
    False
    __nonzero__
    (在Python2中)返回
    False
    或的任何对象
    0
  • 任何未实现
    __bool__
    (在Python3中)或
    __nonzero__
    (在Python2中)但确实实现
    __len__
    了返回等于0的值的东西

如果任何一个对象适用,则该对象被视为“ false”,否则为“ true”,无论该对象实际上与

False
或等于还是相同。
True

现在,如果已经安排了

x
必须是对象
True
或对象之一
False
,则可以放心地编写
ifx
。如果您安排了“真实性”
x
指示是否要执行该 *** 作(无论类型如何),那么可以放心地编写
if x
。您可以在哪里写,应该更喜欢这样做,因为它更容易阅读。

通常,如果允许

x
使用该值,
True
那么您将处于两种情况之一,因此您将不会编写
if x isTrue
。重要的是正确记录的含义
x
,以使其反映代码中使用的测试。

希望Python程序员知道什么被认为是正确的,因此,如果您仅编写文档,“如果该函数

x
为true,则运行该函数”,那么这表示原始代码的作用。对其进行记录,“如果…
xis True
将运行功能”将具有不同的含义,并且由于PEP8中的样式规则要求测试真实性而不是特定值,因此不太常用
True

但是,如果您希望代码在

x
为空容器的情况下与在不同情况下的行为有所不同
None
,则可以编写类似的代码
if x is not None



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5675122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存