如果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
(,如果其中有元素,则为true,如果为空,则为false。
任何对象都可以在Python中测试真值。以下值被认为是错误的:
无
错误
任何数字类型的零,例如0
、0L
、0.0
、0j
。
任何空序列,例如''
、()
、[]
。
任何空映射,例如{}
。
用户定义类的实例,如果该类定义了__nonzero__()
或__len__()
方法,则当该方法返回整数零或布尔值False
时。
所有其他值都被认为是true,因此许多类型的对象总是true。
在这种情况下,当卡片为空时,卡片为False
,因为它是一个列表。创建对象时,__init__()
会创建卡片空列表,因此在创建对象时if语句的条件始终为False
。