我正在研究一個在Python 3.x中創建「Facebook」的項目。我目前所使用的部分是使用str函數來返回不同行上的字符串。使用__str__返回可變數量的不同內襯字符串?
我使用這個代碼是:
class Status:
likers = []
commentObjs = []
def __init__(self, statusPoster, statusMsg, likers, commentObjs):
self.statuser = statusPoster
self.status = statusMsg
self.likers = likers
self.commentObjs = commentObjs
和
def __str__(self):
return '%s: %s \n"hello"' %(self.statuser,self.status)
__repr__= __str__
,我運行到是可以有likers可變數量和可變數量的問題commentObjs。
我會得到什麼來實現,以使它所以如果只有一個值,如:
likers = ["Spongebob"]
commentObjs = ["Spongebob: You should watch the Spongebob movie!"]
它返回終端:
Brad Pitt will watch a movie today!
Spongebob likes this.
Spongebob: You should watch The Spongebob movie!
但如果有一個以上的在每個列表中的值,如:
likers = ["Spongebob","Harry Potter"]
commentObjs = ["Spongebob: You should watch the Spongebob movie!","Brad Pitt: How about nah?"]
它返回:
Brad Pitt will watch a movie today!
Spongebob, Harry Potter likes this.
Spongebob: You should watch The Spongebob movie!
Brad Pitt: Nah, I will probably watch Mr and Mrs. Smith.
我能想到可能做到這一點會是這樣一個for循環和len(likers)
的唯一途徑,但我不知道我怎麼會是能夠做到這一點,同時還返回名稱的常數值和狀態。
我強烈建議不要使用它作爲你的'__repr__'。 – user2357112