需要一种向python列表/元组变量添加元信息/类的简单方法吗?
全部, 我希望简单的元信息被包含在列表对象中,请参见下面的代码需要一种向python列表/元组变量添加元信息/类的简单方法吗?,python,list,meta,setattr,Python,List,Meta,Setattr,全部, 我希望简单的元信息被包含在列表对象中,请参见下面的代码 >>> a = [] >>> a.foo = 100 Traceback (most recent call last): File "<interactive input>", line 1, in <module> AttributeError: 'list' object has no attribute 'foo' >>> setattr(a,
>>> a = []
>>> a.foo = 100
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
AttributeError: 'list' object has no attribute 'foo'
>>> setattr(a,"foo",100)
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
AttributeError: 'list' object has no attribute 'foo'
>>> dir(a)
...
'__setattr__',
'__setitem__',
...
>a=[]
>>>a.foo=100
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“列表”对象没有属性“foo”
>>>setattr(a,“foo”,100)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“列表”对象没有属性“foo”
>>>处长(a)
...
"设置属性",,
'设置项'',
...
我的问题是
谢谢 C中定义的基类型不能添加任意属性;您必须从它们派生一个Python类型才能更改它
>>> class MyList(list):
... pass
...
>>> m = MyList((1, 2, 3))
>>> len(m)
3
>>> m.foo = 42
>>> m.foo
42
像往常一样,你比我先到+1谢谢,有没有办法愚弄python,因为m是列表类型?>>类型(m)
class mylist(list):
pass
l = mylist()
l.foo = 'bar'