无法在继承自Atom api的类中创建变量

时间:2016-12-19 05:26:02

标签: python

当我从Atom继承atom.api时,我无法创建成员变量。

什么机制解释了这个?

from atom.api import Atom

class A:
    def init(self):
        self.var = 0

class B(Atom):
    def init(self):
        self.var = 0

a = A()
a.init()

b = B()
b.init()

执行b.init()时,我收到错误消息:

  

AttributeError:'B'对象没有属性'var'

2 个答案:

答案 0 :(得分:3)

声明变量就像使用类

的静态成员一样
class B(Atom):

    var = Range(low=0)

    def init(self):
        self.var = 0

然后atom将其视为有效的类字段。

答案 1 :(得分:2)

Atom已经覆盖了描述符。他们负责使用getter(self.x)和setter(self.x = 42)的不同行为。这就是您收到错误的原因。欲了解更多信息,请阅读:

1)关于Python中的描述符:https://docs.python.org/3/howto/descriptor.html

2)关于Atom框架:https://pypi.python.org/pypi/atom/0.3.6