Python Tutor中的对象不完整?

2024-09-30 20:23:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个训练练习,我需要找出这个项目中的问题。我找不到它们,python tutor不允许我查看创建的对象。它只是说不完整的物体。程序应该为字符串创建一种队列。密码有什么问题?在

class A():
"""Eine Art Warteschlange für Strings"""

    def __init__(self, wait = [], now = ""):
        self.wait = wait
        self.now = now

    def new_string(self, x):
        """Fügt einen String zur Warteschlange hinzu"""
        self.wait.append(str(x))

    def next_string(self):
        """Holt den nächsten String aus der Warteschlange, speichert ihn als aktuellen String"""
        self.now = self.wait[0]
        self.wait.pop(0)

    def top(self):
        """Gibt den aktuellen String zurück"""
        return self.now

    def __str__(self):
        return self.top

Tags: 项目selfstringreturntopdefnowwait
1条回答
网友
1楼 · 发布于 2024-09-30 20:23:02

以下是我在你们班上遇到的几个bug(可能还有更多):

  • 在类文档的缩进下。
    修正:向右缩进4个空格。

  • __str__魔术方法不返回string
    修复:将self.top替换为self.top()。您需要返回方法top返回的值。

  • 添加new_string时,不会更新属性now
    由于您正在使用__str__中对象的now属性,因此建议在使用new_string方法初始化空对象时更新它。有几种方法可以做到。我建议你把它修好。

示例:

In []: a = A()
In []: a.new_string('foo')
In []: print(a)

In []: a.now
Out[]: ''
In []: a.wait
Out[]: ['foo']

相关问题 更多 >