Python AttributeError:类对象没有属性

d3p*_*3pd 3 python attributes class attributeerror

当我尝试运行我正在编写的类的代码时,我得到了一个消息AttributeError,但我不确定为什么。具体错误如下:

    self.marker = self.markers[marker[1:]]
AttributeError: 'TTYFigureData' object has no attribute 'markers'
Run Code Online (Sandbox Code Playgroud)

这是我正在写的课程的一部分:

class TTYFigureData(object):
    """
    data container of TTYFigure
    """
    def __init__(
        self,
        x,                      # x values
        y,                      # y values
        marker          = "_.", # datum marker
        plot_slope      = True
        ):
        self.x          = x
        self.y          = y
        self.plot_slope = plot_slope
        self.set_marker(marker)
        self.markers = {
            "-" : u"None" ,
            "," : u"\u2219"
        }

    def set_marker(
        self,
        marker
        ):
        if marker in [None, "None", u"None", ""]:
            self.plot_slope = True
            self.marker = ""
        elif marker[0] == "_":
            self.marker = self.markers[marker[1:]]
        else:
            self.marker = marker
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

Mar*_*ers 5

在您的__init__方法中,您在设置self.set_marker() 之前self.markers调用:

self.set_marker(marker)
self.markers = {
    "-" : u"None" ,
    "," : u"\u2219"
}
Run Code Online (Sandbox Code Playgroud)

所以运行时,set_marker()没有. 将调用向下移动一行:self.markers

self.markers = {
    "-" : u"None" ,
    "," : u"\u2219"
}
self.set_marker(marker)
Run Code Online (Sandbox Code Playgroud)