【发布时间】:2019-04-24 17:16:10
【问题描述】:
我在 python 的 str 方法中的程序存在问题。
所以在我的 tostring 方法中,我打印出用户的信息。我遇到的问题是当我打印数据时,如果用户想要在邮件列表中。
我想把那部分作为布尔答案,所以“是”或“否”。
我正在尝试弄清楚如何使用临时变量,以便我的第一个客户显示“是”,而第二个客户显示“否”
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()
上面这个是调用对象的类,最后一个变量是真假
这就是我在下面被告知要做的事情 " 布尔数据属性,表示 客户是否希望在邮件列表中。 "
【问题讨论】:
-
你有一个
return作为__str__中的第一条语句,因此它将在该点退出而不执行if。 -
你的意思是
temp = super().__str__() + ...? -
什么是
self._mailList?只定义了person1和person2,为什么还要写print(person)? -
@chepner 它已更新,我正在对其进行调整
-
@Prune 我添加了类,如果我要添加所有的,那将没有用,当错误仅在 toString 方法中时