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

时间:2019-04-24 17:16:11

标签: python boolean tostring

我在python的 str 方法中遇到有关程序的问题。

因此,在我的tostring方法中,我正在打印出用户信息。我遇到的问题是当我打印数据时,如果用户希望出现在邮件列表中。

我想把它作为布尔值回答,所以是“是”或“否”。

我试图弄清楚如何使用temp变量,以便对我的第一个客户显示“是”,第二个客户显示“否”

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()

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

这是我在下面被告知要做的 “布尔数据属性,它指示 客户是否希望进入邮件列表。 “

1 个答案:

答案 0 :(得分:1)

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

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