Re: [問題] 請問如何動態改變物件屬性名稱

看板Python作者 (用口頭禪區分年記)時間14年前 (2010/11/09 12:30), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

11/09 16:29, , 1F
成功了,謝謝 :)
11/09 16:29, 1F
文章代碼(AID): #1CsCvQbN (Python)
文章代碼(AID): #1CsCvQbN (Python)