在 python 中的 __str__ 方法中使用布尔表达式

Using a boolean expression in a __str__ method in python

我在 python.

中的 str 方法中的程序有问题

所以在我的 tostring 方法中,我正在打印出用户的信息。我遇到的问题是当我打印数据时,如果用户想加入邮件列表。

我想把那部分作为布尔答案,所以 "yes" 或 "no"。

我想弄清楚如何使用临时变量,以便我的第一个客户显示 "yes",第二个显示 "no"

class person(Person):
    def __init__(self):
        super().init(name,address,phone)

    def __str__(self):
        return super().__str__()

class Customer(Person):
    def __init__(self,name,address,phone,Num,Mail):
        super().__init__(name,address,phone)
        self._cusNum = Num
        self._mailList = Mail

    @property
    def Num(self):
        return self._cusNum

    @property
    def Mail(Self):
        return self._mailList

    @Num.setter
    def Num(self,Number):
        self._cusNum = Number

    @Mail.setter
    def Mail(self,List):
        self._mailList = List

问题如下:

    def __str__(self):
        return super().__str__() + " Customer Num: " + str(self._cusNum) + " Mailing List? "
        if self._mailList == temp:
            _mailList = "Yes"
        else:
            _mailList = "No"
        return _mailList   

这就是问题所在,我想使用“_mailList”变量使其成为布尔表达式。

from Person import*
def main():
    person1 = Customer("John Smith", "5 myStreet","973-111-1111",1,True)
    person2 = Customer("Henry Haus", "1 myHouse","973-222-2222",2,False)
    print(person1)
    print(person2)

main()

以上是调用对象的class,最后一个变量为true和false

这是我在下面被告知要做的 " 布尔数据属性,表示 客户是否想加入邮件列表。 “

您需要做的就是将布尔值 self._mailList 转换为字符串,然后 将其添加 到其余部分。

def __str__(self):
    return "{} Customer Num: {} Mailing List? {}".format(
        super().__str__(),
        self._cusNum,
        "Yes" if self._mailList else "No"
    )