在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ python使用字典傳參數(shù) 創(chuàng)建構(gòu)造函數(shù)

python使用字典傳參數(shù) 創(chuàng)建構(gòu)造函數(shù)

class settings:
    def __init__(self,leds):
        for i in leds:
            #print(i,leds[i])
            self.i = leds[i]

leds={'redb':4,'gerd':27,'yelb':29}
s=settings(leds)

我是想把leds這個(gè)字典傳入這個(gè)構(gòu)造函數(shù),然后直接用遞歸生成,但是這樣寫是報(bào)錯(cuò)的,有什么好辦法把這種類型的字典,根據(jù)item和對(duì)應(yīng)的值直接構(gòu)造函數(shù)的簡(jiǎn)便方法么?

回答
編輯回答
未命名

python中屬性管理的特殊方法有__getattr__、 __getattribute__、 __setattr____delattr__、 __dir__等。__setattr__從字面看就知道可以用來給對(duì)象綁定屬性。

class settings(object):
    def __init__(self, leds):
        for k, v in leds.items():
            self.__setattr__(k, v)

上面回答提到的__dict__特殊屬性是存儲(chǔ)了對(duì)象的屬性名和屬性值的字典。所以直接修改__dict__屬性也可以用來改變對(duì)象屬性。

2018年8月9日 17:53
編輯回答
話寡
class settings:
    def __init__(self,leds):
        for i in leds:
            self.__dict__[i] = leds[i]

leds={'redb':4,'gerd':27,'yelb':29}
s=settings(leds)
2018年3月20日 20:50