如何重载__str__操作使str(" test")返回" test"

时间:2016-09-12 15:40:18

标签: python string operator-overloading

我试图重载 str 操作,这样当我执行str(字符串)时,它会保留引号。

例如: STR("测试&#34) 返回测试

我希望它返回"测试"

继续我所写的内容,非常感谢任何帮助!

class Action(MalmoAgent):
    def __init__(self, command = '', value = 0):
        self.__command =  command
        self.__value = value
    def __str__(self):
        return ' " ' + self + ' " '

3 个答案:

答案 0 :(得分:0)

使用repr(),这显然不是实际的字符串。

repr('Test')

答案 1 :(得分:0)

只需格式化字符串

即可
...  def __str__(self):
...   return '"%s"' % self.whatever

答案 2 :(得分:0)

class MalmoAgent():
    pass

class Action(MalmoAgent):
    def __init__(self, command='', value=0):
        self.__command = command
        self.__value = value

    def __str__(self):
        return '"' + super(Action, self).__str__() + '"'


thing = Action()

print("I have a", thing, "called thing.")

<强>输出

I have a "<__main__.Action object at 0x101ae9a90>" called thing.