考虑一下这段 Python 代码:
>>> l = [1,2,3]
>>> l.foo = 'bar'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'foo'
>>> setattr(l, 'foo', 'bar')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'foo'
我明白为什么这不起作用——list
没有__dict__
,因此它不支持属性。
我想知道是否有推荐的替代列表集合类支持自定义属性,或者,如果有一个好的 Pythonic 'hack' 可用于将其添加到标准list
类中。
或者这是一个更容易自己动手的情况?