gpt4 book ai didi

python - 使用 __str__ 从类对象返回字符串

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:15 24 4
gpt4 key购买 nike

我在使用这个 fifo 队列程序时遇到了问题,我已经编写了大部分代码,如下所示:

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 __(self) 函数,我想要它做的是如果我调用 print(str(q)),则返回我的列表 self.__L 并带有“'”,但是如果我仅调用 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 __ 来完成此任务,不能创建其他函数。非常感谢任何指示。

最佳答案

__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

关于python - 使用 __str__ 从类对象返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47126257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com