[英]Having errors in inheritance in Python
我正在嘗試創建一個考慮到房地產經紀人的程序。 在這個程序中,我試圖在考慮所有基本參數的情況下涵蓋房屋的各個方面。 但是我有一些錯誤。
class Apartment:
def __init__(self, aptNumber, address, bedrooms, baths):
self._aptNumber = aptNumber
self._address = address
self._bedrooms = int(bedrooms)
self._baths = float(baths)
def _securiyDep(self):
securityDeposit = 330(bedrooms)
def _rent(self):
rent = 250(bedrooms) + 150(bathrooms)+200
def _renter(self):
renter = "vacant"
def setSecDep(self, deposit):
self._deposit = 1000
def setRent(self, rentMoney):
self._rentMoney = 800
def setRenter(self, renter):
self._renter = "Vacant"
def getData(self, Data):
self._Data = Data
def isVacant(self, vacancy):
self._vacancy = "True" or "False"
def __repr__(self):
s = self._aptNumber+ " located at " + str(self._address) + " is rented at" + self._rent
s+= " and has a security deposit = " + self._deposit + " and is = " + self._vacancy
return s
# Test code for the Apartment Class
if __name__ == "__main__":
apts = []
apts.append(Apartment("10C", "107 E. Main", 3, 1.5))
apts.append(Apartment("14B", "109 E. Main", 4, 2))
apts.append(Apartment("13", "2207 W. Broadway", "5", "2.5"))
for apt in apts:
print(apt)
print()
apts[0].setRent("1245")
apts[0].setRenter("Rocky Quartzite")
apts[1].setSecDep("1000")
apts[1].setRenter("Millie Milton")
print(apts[0].getData())
print()
for apt in apts:
if not apt.isVacant():
print(apt)
print()
apts[0].setRenter("")
print(apts[0])
我有錯誤
print(apts[0].getData())
<__main__.Apartment object at 0x0000000003124208>
TypeError: getData() missing 1 required positional argument: 'Data'
<__main__.Apartment object at 0x0000000003124240>
有人可以幫助解決錯誤嗎?
您在第60行沒有任何參數的情況下調用getData
: print(apts[0].getData())
。 在您的定義中,它需要一個稱為Data
的參數。
您定義getData
接受兩個參數,即self
是對您正在操作的實例的引用,並且是“自動”提供的,第二個參數是Data
def getData(self, Data):
self._Data = Data
但是,當您調用getData
您不會提供第二個參數Data
apts[0].getData()
因此,解釋器告訴您缺少1個必需參數,在您的情況下為Data
。
由於您所用的getData
實際上設置了Data
變量,因此最好將其稱為setData
如果要檢索Data
變量,則getter必須看起來像這樣
def getData(self):
return self._Data
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.