使用__str__从类对象返回一个字符串

时间:2017-11-05 20:23:17

标签: python string class

我遇到了这个fifo-queue程序的问题,我已经解决了大部分代码,看起来像这样:

class fifoQueue:

    __L = []
        def __init__(self):
        self.__L = []


    def __len__(self):
        return len(self.__L)


    def empty(self):
        if len(q) == 0:
            return True
        else:
            return False


    def enqueue(self, e):
        self.__L.insert(0, e)
            return self.__L


    def dequeue(self):
        if self.empty():
            self.__L = [e]
        else:
            return self.__L.pop()

    def __str__(self):
        return "'" + str(self.__L) + "'"

我遇到的问题是__ str __(自我)功能,我想要它做的是将我的列表自我.__ L与"'"如果我调用print(str(q)),但如果我只调用print(q),我希望它返回列表。现在我得到了print(q)和print(str(q))的相同输出。

(print(str(q)) returns '[31.0]'
print(q) returns '[31.0]'

虽然我希望它返回

str(q) returns '[31.0]' or print(str(q)) returns '[31.0]'
print(q) returns [31.0]

我来自数学背景,这是我学习的第一批语言之一,所以如果这是非常基础,我会道歉。 这是一个赋值,我必须只使用__ str __来完成此任务,不能创建其他函数。 任何指示都非常感谢。

1 个答案:

答案 0 :(得分:1)

__str__方法应如下:

 def __str__(self):
      return str(self.__L)    # delegate to built-in function (no concatenation with quote)

或者:

def __str__(self):
    return '{self.__L !s}'.format(self.__L)    # string formatting