自我陈述何时为真,何时为假?

时间:2018-11-01 14:28:28

标签: python if-statement self

如果有自己的卡片状况,有人可以解释吗?什么时候为True,什么时候为False?

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

2 个答案:

答案 0 :(得分:1)

首先,您可能应该向我们展示首次使用self.cards的情况。
假设它是某种容器(listsetdict),则其中包含元素为true,如果为空则为false。

答案 1 :(得分:0)

可以在Python中测试任何对象的真值。以下值被认为是错误的:

没有

错误

任何数字类型的零,例如00L0.00j

任何空序列,例如''()[]

任何空映射,例如{}

用户定义类的实例,如果该类定义了__nonzero__()__len__()方法,则该方法返回整数零或布尔值False

所有其他值都被视为true,因此许多类型的对象始终为true。

在这种情况下,卡为False时为空,因为它是一个列表。创建对象时,__init__()将创建卡的空列表,以便在创建对象时if语句的条件始终为False