作者timTan (用口头禅区分年记)
看板Python
标题Re: [问题] 请问如何动态改变物件属性名称
时间Tue Nov 9 12:30:15 2010
※ 引述《grtfor (哦啦啦)》之铭言:
: 假设我有一个物件叫foo
: 它有三个属性,分别是x,y,z
: 然後现在有一个myMap = {x:1, y:2, z:3}
: 现在我想动态塞值进去...
: for key in myMap:
: if key = 'x':
: foo.x= myMap[key]
: ...
: 有没有比较好的写法,让我不用写好几个if ?
: (假设未来这属性 数量有时会改变 @@")
: 我试过
: for key in myMap:
: foo.key = myMap[key]
: print foo.key # 有值
: print foo.x # None
: 程式能跑,但值没有进去...
: 谢谢~~
atr = { 'Age' :18 }
class Lady(object) :
pass
lady = Lady()
for k in atr :
lady.__setattr__( k , atr[k] )
print lady.Age
--
use __setattr__
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.211.32.194
1F:推 grtfor:成功了,谢谢 :) 11/09 16:29