当我从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'
答案 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