下面是一个交互式Python会话,它使用了Enthught工具套件(ETS)的组件:
>>> import sys
>>> sys.version
'2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]'
>>> import traits
>>> traits.__version__
'4.5.0'
>>> from traits.api import HasTraits, Range
>>> class Foo(HasTraits):
... bar = Range (low=1, high=10)
...
>>> foo = Foo()
>>> foo.bar
1
>>> foo.bar._low
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
AttributeError: 'int' object has no attribute '_low'
我希望能够访问Foo
实例的bar
属性的预定义限制。如何做到这一点?你知道吗
谢谢!你知道吗
这样做的标准方法是使用
low
和high
特征,并将它们指定为Range
的界限您可以动态分配特性:
Range()
对象具有可以访问的_low
和_high
属性。 我假设使用了下划线,这样它就不会在Range()
中用low
和high
关键字参数进行阴影处理。你知道吗作为类实例属性访问它们仍然是可能的,但是您需要知道变量的名称(在这个基
bar
),这样您就可以在foo.traits()
中访问它,这是一个包含所有特性的字典:相关问题 更多 >
编程相关推荐