我試圖將兩個類合併成一個類。在代碼塊的末尾,您會看到一個名爲starwarsbox的類。這包含字符和框類。目標是打印出一個由星號和星球大戰角色的信息組成的盒子(這是爲了我的學習)。我試圖查找如何使用repr,但沒有實施它的運氣。我感謝您的幫助。在Python中打印繼承類
我得到<__main__.starwarsbox object at 0x000000000352A128>
class character:
'common base class for all star wars characters'
charCount = 0
def __init__(self, name, occupation, affiliation, species):
self.name = name
self.occupation = occupation
self.affiliation = affiliation
self.species = species
character.charCount +=1
def displayCount(self):
print ("Total characters: %d" % character.charCount)
def displayCharacter(self):
print ('Name :', self.name, ', Occupation:', self.occupation, ', Affiliation:', self.affiliation, ', Species:', self.species)
darth_vader = character('Darth Vader', 'Sith Lord', 'Sith', 'Human')
chewbacca = character('Chewbacca', 'Co-pilot and first mate on Millenium Falcon', 'Galactic Republic & Rebel Alliance', 'Wookiee')
class box:
"""let's print a box bro"""
def __init__(self, x, y, title):
self.x = x
self.y = y
self.title = title
def createbox(self):
for i in range(self.x):
for j in range(self.y):
print('*' if i in [0, self.x-1] or j in [0, self.y-1] else ' ', end='')
print()
vaderbox = box(10, 10, 'box')
vaderbox.createbox()
class starwarsbox(character, box):
def __init__(self, name, occupation, affiliation, species, x, y, title):
character.__init__(self, name, occupation, affiliation, species)
box.__init__(self, x, y, title)
def __str__(self):
return box.__str__(self) + character.__str__(self)
newbox = starwarsbox('luke','jedi','republic','human',10,10,'box')
print(repr(newbox))
'repr'調用'__repr__',而不是'__str__'。 – chepner
那會是什麼?我嘗試了'print(str(newbox))',它仍然顯示'__ main __。starwarsbox object 0x000000000350A128' – stuffatwork190
在'box'和'Character'類中實現'__str__'函數,然後使用print(newbox)。 – Zety