我已经看了很多不同的论坛帖子,并尝试了一堆不同的技术,但我还没有想出如何让我的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__'。 –