__str__函数不返回字符串,而是返回实例?

时间:2016-12-14 20:37:57

标签: string python-3.x repr

我查看过很多不同的论坛帖子并尝试了一些不同的技巧,但我还没弄明白如何让我的 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'

我试图在不使用终端中的print()命令以及不在终端中使用str()命令的情况下实现此目的。但是在我的python文件中,它很好,我只需要以某种方式返回值。我希望这不是一个重新发布,因为我说我试图找到解决方案,但我不能让他们工作..

1 个答案:

答案 0 :(得分:0)

您需要调用__str__函数。尝试

my_var = Comment('name', 'content') print(str(my_var)) print('My message is: %s'.format(my_var)