[英]When is self statement true and when is false?
如果 self.cards 条件,有人可以解释这一点吗? 什么时候会是真,什么时候会是假?
def __init__(self):
self.cards = []
def __str__(self):
if self.cards:
rep = ""
for card in self.cards:
rep += str(card) + " "
else:
rep = "<empty>"
return rep
首先,您应该在第一次使用 self.cards 时向我们展示。
假设它是某种容器( list
, set
或dict
),如果其中有元素,则为真,如果为空,则为假。
任何对象都可以在 Python 中测试真值。 以下值被认为是错误的:
没有任何
错误的
任何数字类型的零,例如0
、 0L
、 0.0
、 0j
。
任何空序列,例如''
、 ()
、 []
。
任何空映射,例如{}
。
用户定义类的实例,如果该类定义了__nonzero__()
或__len__()
方法,则该方法返回整数零或布尔值False
。
所有其他值都被认为是真——所以许多类型的对象总是真。
在这种情况下,cards 为空时为False
,因为它是一个列表。 创建对象时, __init__()
创建卡片空列表,因此创建对象时 if 语句的条件始终为False
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.