我已經看了很多不同的論壇帖子,並嘗試了一堆不同的技術,但我還沒有想出如何讓我的str函數返回一個字符串'',而不是沒有引號。__str__函數不返回字符串,而是實例?
我的代碼:
class Comment:
def __init__(self,commenterName, content):
self.name = commenterName
self.content = content
def __str__(self):
return str('%s: %s' %(self.name, self.content))
據我瞭解,如果我在我的STR功能伴隨我的返回值與STR()應該返回字符串值。
,而不是...:
>>>Comment("lol","lol")
<__main__.Comment object at 0x000000000354CF60>
我需要專門返回值作爲一個字符串,而不是打印出來,我知道。
我想要得到的輸出:
"lol": "lol"
,但我已成功最好的是:
lol: lol
我一直在這個確切一點問題相當一段時間,不能圖我做錯了什麼。感謝您提前幫助:D
P.S.我想在你的終端使用
Comment(commenterName,content)
,使其返回
'commenterName: content'
我試圖做到這一點,而不使用在終端打印()命令以及未使用的價值終端中的str()命令。然而,在我的python文件中,它很好,我只需要以某種方式返回值。我希望這不是太多的轉貼,因爲我說我試圖找到解決方案,但我不能讓他們工作。
按你的終端上輸入將調用對象'__repr__',而不是它的'__str__';使用'print(Comment(「lol」,「lol」))'。 –
我將如何實現__repr__,以便我可以在終端中運行Comment(name,content)並接收和輸出'name:content'? – CoopStad
在'__str__'的定義之後在你的類中分配'__repr__ = __str__'。 –