【发布时间】:2015-06-21 13:58:52
【问题描述】:
编写一个名为 Person 的类,其中包含一个人的姓名、地址、电话和电子邮件的数据属性。接下来,编写一个名为 Customer 的类,它是 Person 类的子类。 Customer 类应该有一个客户编号的数据属性和一个布尔数据属性,指示客户是否希望成为邮件列表中的一员。在一个简单的程序中演示 Customer 类的一个实例。
我收到一个属性错误。
, line 6, in main
'555-987-1549','adsf@asd.com','Y','1153')
TypeError: __init__() takes 5 positional arguments but 7 were given
我没有完全遵循使用布尔表达式的要点,所以也许有人可以解释为什么要使用它并帮助我了解为什么会出现该错误。
这是我的代码
类Person:
class Person:
def __init__(self, name, address, telephone, email):
self.__name = name
self.__address = address
self.__telephone = telephone
self.__email = email
def set_name(self, name):
self.__name = name
def set_address(self, address):
self.__address = address
def set_telephone(self, telephone):
self.__telephone = telephone
def set_email(self, email):
self.__email = email
def get_name(self):
return self.__name
def get_address(self):
return self.__address
def get_telephone(self):
return self.__telephone
def get_email(self):
return self.__email
班级Customer:
import Person
class Customer(Person.Person):
def __init__(self, name, address, telephone, email):
Person.Person.__init__(self, mail, number)
self.mailing = 'Y'== True
self.__mail = mail
self.__number = number
def set_mail(self, mail):
self.__mail = mail
def set_number(self, number):
self.__number = number
def get_mail(self):
return self.__mail
def get_number(self):
return self.__number
def mailList(self, mail):
if mailing == True:
return"On the mailing list"
else:
return"Not on the mailing list"
def __str__(self):
return "\nName: {}\nAddress: {}\ntelephone: {}\nEmail: {}\nMail: {}\nNumber: {}".\
format(self.get_name(), self.get_address(),\
self.get_telephone(), self.get_email()\
, self.mailList(self.get_mail()),self.get_number())
customerTest:
import Customer
def main():
customer = Customer.Customer('Josh', 'Long st, Dallas TX',\
'555-987-1549','adsf@asd.com','Y','1153')
print(customer)
main()
【问题讨论】:
-
您使用 6 个参数调用
Customer,然后使用两个参数调用Person(顺便说一句,两者都没有定义),但是这两个构造函数都需要 4 个参数,在self旁边.另外,self.mailing = 'Y'== True没有多大意义。
标签: python