1

こんにちは私は次のスーパークラスを持っています

class Room:
    def __init__(self,building,floor,number):
        self.building=building
        self.floor=floor
        self.number=number
    def __str__(self):
        return (str(self.building)+'.'+str(self.floor)+'.'+str(self.number))

および次のサブクラス

class Occupant(Room):
    def __init__(self,familyname,givenname,building,floor,number):
        self.familyname=familyname
        self.givenname=givenname
        Room.__init__(self,building,floor,number)
    def __str__(self):
        return (str(self.familyname)+', '+str(self.givenname)+......)

サブクラスはどのようにしてスーパークラスから要素を出力できますか。クラスOccupantからオブジェクトを印刷するときに正しい出力を取得するために追加する必要があるもの(.....)。ありがとう

4

1 に答える 1

5

は人のOccupantように見えますが、Roomは場所です。Occupantもしそうなら、がのタイプであると言うのは意味がありませんRoom。したがってOccupant、のサブクラスであってはなりませんRoom。代わりに、 :Occupant があり Roomます

class Room:
    def __init__(self, building, floor, number):
        self.building = building
        self.floor = floor
        self.number = number
    def __str__(self):
        return (str(self.building)+'.'+str(self.floor)+'.'+str(self.number))

class Occupant:
    def __init__(self, familyname, givenname, room):
        self.familyname = familyname
        self.givenname = givenname
        self.room = room

    def __str__(self):
        return '{f}, {g} -- {r}'.format(f = self.familyname, g = self.givenname, r = self.room)

room = Room('Building', 'Floor', 'Num')
occ = Occupant('Family', 'Given', room)
print(occ)
# Family, Given -- Building.Floor.Num
于 2012-06-17T14:20:11.267 に答える