繁体   English   中英

Python Tutor中的对象不完整?

[英]Incomplete Object in Python Tutor?

我进行了此培训,需要在该程序中查找问题。 我找不到它们,并且python导师不允许我看到创建的对象。 它只是说对象不完整。 该程序应为字符串创建一种队列。 代码有什么问题?

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

这是我在课堂上遇到的几个错误(可能还有更多):

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

  • __str__ magic方法不会返回string
    修复:将self.top替换为self.top() 您可能想返回方法top返回的值。

  • 添加new_string now不更新属性。
    由于您正在__str__中使用对象的now属性, __str__ ,每当使用new_string方法初始化空对象时,建议对其进行更新。 有几种方法可以做。 我建议您按照自己的意愿解决此问题。

例:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM