我想動態地更新類的屬性,但似乎setattr和getattr的組合不起作用,因爲我想使用它。python combined setattr和getattr
這裏是我的主類:
class Container(object):
def __init__(self):
pass
container = Container()
attributes = ['a', 'b', 'c', 'd']
values = [[1, 2, 3, 4, 5], [True, False], ['red', 'blue', 'green'], [0, 1, -1, -5, 99]]
請注意,這個例子我明確構造的屬性和它們各自的值的列表的目的。但是,在這個代碼的實際應用中,我什麼都沒有提前知道。他們的號碼,姓名或價值都不是。這需要動態地做到這一點。
這裏是代碼的其餘部分:
for key, value in zip(attributes, values):
setattr(container, key, [])
for val in value:
setattr(container, key, getattr(container, key).append(val))
當我運行這部分代碼不能正常工作。我可以將getattr部分保存在一個tmp變量中,然後在調用setattr之前調用列表的append方法,但如果可能的話,我想濃縮它。
任何人都可以解釋爲什麼這不起作用?我有什麼替代方案?
感謝您的幫助
「*此部分在我運行代碼時不起作用*」如何?另外,你希望發生什麼? – Blender 2013-03-08 11:33:55