Python 属性错误 : class object has no attribute

标签 python class attributes attributeerror

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

    self.marker = self.markers[marker[1:]]
AttributeError: 'TTYFigureData' object has no attribute 'markers'

这是我正在写的类(class)的一部分:

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

我哪里错了?

最佳答案

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

self.set_marker(marker)
self.markers = {
    "-" : u"None" ,
    "," : u"\u2219"
}

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

self.markers = {
    "-" : u"None" ,
    "," : u"\u2219"
}
self.set_marker(marker)

关于Python 属性错误 : class object has no attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32823858/

相关文章:

c# - 在 .Net (C#) 中使用属性是否昂贵?

python - 无法获取内置类型

python xml提取for循环

python - 如何请求一个已经引用的 URL?

python - 在Python中使用正则表达式匹配字符串中重复出现的单词

Ruby 类属性

Java 泛型类,其泛型类型扩展了多个其他类

java - 保护父类(super class)方法免受子类方法的影响

c++ - 如何使用 C++ 中的函数永久更改类属性值?

python - Eclipse + PyDev 在大量导入时变得极其缓慢