爲個人姓名,地址,電話和電子郵件編寫一個名爲Person的類,其中包含數據屬性。接下來,編寫一個名爲Customer的類,該類是Person類的子類。客戶類應該有一個客戶編號的數據屬性和一個布爾數據屬性,表明客戶是否希望成爲郵件列表中的一員。在一個簡單的程序中演示一個Customer類的實例。屬性錯誤人員和客戶類別
我得到一個attibute錯誤。
, line 6, in main
'555-987-1549','[email protected]','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','[email protected]','Y','1153')
print(customer)
main()
你調用'Customer'有6個參數,然後調用'Person'有兩個參數(兩者都沒有定義,由方式) ,但是這兩個構造函數都需要4個參數,緊挨着'self'。另外,'self.mailing ='Y'== True'沒有多大意義。 –