ind*_*iag 1 python inheritance class python-3.x
嗨,我有以下超级课程
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))
Run Code Online (Sandbox Code Playgroud)
和以下子类
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)+......)
Run Code Online (Sandbox Code Playgroud)
子类如何从超类中打印元素.当我从类乘员打印一个对象时,我应该添加到(.....)以获取正确的输出.谢谢
一个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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
89 次 |
最近记录: |