簡體   English   中英

Python繼承中有錯誤

[英]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行沒有任何參數的情況下調用getDataprint(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM