第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 更改變量的引用

Python 更改變量的引用

慕斯709654 2022-11-24 14:53:19
我正在嘗試在運行時為一個類創(chuàng)建屬性,我目前正在使用這段代碼:class Obj:  passattrs = ["a", "b", "c"]for attr in attrs:  attr_print = lambda self: print(attr)  setattr(Obj, attr, property(attr_print))o = Obj()o.a但是無論我嘗試打印什么屬性,它總是打印最后一個 in attrs。感覺 python 在每個循環(huán)中都在更改我以前的 lambda。有沒有辦法防止這種情況發(fā)生?
查看完整描述

1 回答

?
冉冉說

TA貢獻1877條經(jīng)驗 獲得超1個贊

是的,只需使用另一個 lambda ...


for attr in attrs:

    createProp = lambda a: (lambda self: print(a))

    attr_print = createProp(attr)

    setattr(Obj, attr, property(attr_print))

這樣,我們a在每個循環(huán)中創(chuàng)建一個新變量(這a是函數(shù)的參數(shù)/局部變量createProp),attr_print然后每個 s 都引用自己的私有as。


查看完整回答
反對 回復(fù) 2022-11-24
  • 1 回答
  • 0 關(guān)注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號