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

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

將字典分配給類對象

將字典分配給類對象

滄海一幻覺 2023-07-18 15:05:06
下面兩個類定義有什么區(qū)別,class my_dict1(dict):    def __init__(self, data):        self = data.copy()        self.N = sum(self.values)上面的代碼會生成AttributeError: 'dict' object has no attribute 'N',而下面的代碼會編譯class my_dict2(dict):    def __init__(self, data):        for k, v in data.items():             self[k] = v        self.N = sum(self.values)例如,d = {'a': 3, 'b': 5}a = my_dict1(d) # results in attribute errorb = my_dict2(d) # works fine
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個贊

通過將self自身分配給任何東西,您可以將其分配self給與最初處理的完全不同的實(shí)例,使其不再是“自我”。該實(shí)例將屬于更廣泛的類型dict(因?yàn)?code>data是 a?dict),而不是更窄的類型my_dict1。您需要self["N"]在第一個示例中執(zhí)行此操作才能正確解釋它,但請注意,即使這樣,也可以如下所示:

abc?=?mydict_1({})

abc仍然沒有鍵“N”,因?yàn)橥耆煌膶?shí)例被__init__賦予了鍵“N”的值。這向您表明,不存在將self其自身分配給其他事物的合理場景。

關(guān)于my_dict2,如果您想使用特定的內(nèi)容dict作為您的域的表示,則更喜歡組合而不是繼承。這意味著有data一個實(shí)例字段。

查看完整回答
反對 回復(fù) 2023-07-18
  • 1 回答
  • 0 關(guān)注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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