我将我的一些lib变量转换为traitlets
,并且在Tuple
上迭代时我面临错误,尽管这可能与内置的tuple
。
from traitlets import Tuple
a = Tuple((1,2,4)).tag(sync=True)
for i in a:
print(i)
>>> ---------------------------------------------------------------------------
>>> TypeError Traceback (most recent call last)
>>> /Users/pierrickrambaud/Documents/travail/FAO/app_buffer/sepal_ui/untitled.ipynb >>> Cellule 14 in <cell line: 1>()
>>> ----> 1 for i in a:
>>> 2 print(i)
>>>
>>> TypeError: 'Tuple' object is not iterable
与正常tuple
:
a = (1, 2, 3)
for i in a:
print(i)
>>> 1
>>> 2
>>> 3
这是一个bug还是预期的行为?
答案当然是肯定的。
我在我的应用程序中得到的问题是由于打字错误,错误只是一个副作用,对于未来的读者,我给出的小例子并没有显示应该使用的特性的行为。相反,在扩展HasTraits
:
from traitlets import Tuple, HasTraits
class A(HasTraits):
toto = Tuple((1,2,3))
a = A()
for i in a.toto:
print(i)
>>> 1
>>> 2
>>> 3