<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      Python:__dict__ 詳解

      0
      分享至

      在 Python 中,無論是模塊、類還是對象,都擁有一個用于存放名稱與值綁定關系的內部字典——__dict__。它不僅是反射(reflection)機制的核心支點,也體現了 Python 語言“命名即綁定”的動態特性。

      要真正理解命名空間的運行邏輯、作用域的生命周期、屬性查找的過程,就必須深入理解 __dict__ 的工作方式。

      一、__dict__ 的定義與基本作用

      __dict__ 是一個內置屬性,用于保存對象可寫屬性的映射關系。

      換言之,它是對象的命名空間存儲容器(namespace storage)。

      語法:

      object.__dict__

      類型:

      對于普通實例對象(instance)與模塊:類型為 dict

      對于類對象:為 mappingproxy(只讀映射視圖)

      主要功能:

      顯示對象當前的全部屬性及其對應值。

      作為反射接口,支持動態增刪改屬性。

      反映命名空間的即時狀態。

      示例:

      # 輸出:{'name': '艾婉婷'}

      這意味著對象屬性在底層被記錄在一個普通字典中。

      二、命名空間與生命周期

      Python 中的每個命名空間(namespace)都是一個映射表,它記錄了名稱與對象的綁定關系。這些命名空間的存在與消亡,決定了變量的生命周期(lifecycle)。

      (1)命名空間的層級

      模塊級命名空間:由模塊的 __dict__ 表示。

      類級命名空間:由類的 __dict__(mappingproxy)表示。

      實例級命名空間:由實例對象的 __dict__ 表示。

      (2)生命周期特征

      模塊的 __dict__ 在模塊導入時創建,解釋器退出時銷毀。

      類的 __dict__ 在類定義執行完畢時創建,類對象被回收時銷毀。

      實例的 __dict__ 在對象構造(__init__ 調用)時生成,__del__ 或引用計數歸零時銷毀。

      命名空間的銷毀伴隨字典內容的釋放,字典中引用的對象引用計數隨之減少。

      三、類、實例與模塊的 __dict__

      (1)模塊的 __dict__

      保存模塊中定義的所有變量、函數、類等:

      print(math.__dict__.keys())  # 查看 math 模塊命名空間

      (2)類的 __dict__

      保存類屬性與方法定義,但返回值為 mappingproxy,防止直接修改:

      print(A.__dict__)  #

      如果想修改類屬性,需通過類對象直接賦值:

      A.x = 99

      (3)實例的 __dict__

      僅保存實例自身定義的屬性(而非繼承的):

      print(a.__dict__)  # {'y': 123}

      四、動態反射與運行時修改

      __dict__ 的一個強大用途是動態反射,它允許我們在運行時讀取、修改對象屬性,而無需提前定義。

      print(cfg.version)  # 輸出:1.0

      這種機制在框架(如 Django、Flask)和元編程中非常常見。例如 ORM 模型會根據數據庫字段動態生成類屬性。

      注意:

      直接修改 __dict__ 雖然可行,但在復雜對象中(如使用 __slots__ 或 C 擴展類型)可能被禁用。

      五、__dict__ 與屬性查找機制

      對象屬性訪問的底層邏輯可簡化為:

      1、優先查找實例 __dict__。

      2、若不存在,則向類 __dict__ 查找。

      3、若仍未找到,則沿繼承鏈(MRO)繼續上溯。

      print(c.x)  

      查找路徑(邏輯順序):

      c.__dict__ → Child.__dict__ → Base.__dict__

      這種層級式查找正是 Python 動態綁定的基礎。

      六、生命周期與內存管理的隱含邏輯

      理解 __dict__ 的生命周期,可以更好地掌握 Python 對象的內存行為。

      (1)命名綁定與引用計數

      每一次名稱綁定都會在 __dict__ 中記錄一條引用。

      當名稱解除綁定(del 或命名空間銷毀)時,引用計數減 1。

      (2)命名空間銷毀

      當命名空間(模塊、類、對象)被釋放時,其 __dict__ 同步銷毀。

      若其中的對象仍有外部引用,則其生命周期繼續。

      (3)循環引用

      若 __dict__ 中對象互相引用,Python 的垃圾回收器(gc 模塊)會檢測并清理。

      示例:

      gc.collect()  # 強制回收循環引用對象

      七、注意事項與最佳實踐

      (1)與其他機制的關系


      (2)不要在普通業務邏輯中頻繁直接操作 __dict__。

      (3)若需要動態注入屬性,應使用 setattr() / getattr()。

      (4)避免修改類的 __dict__,可通過類定義或裝飾器管理。

      (5)若追求性能或內存控制,可考慮 __slots__ 機制。

      小結

      __dict__ 是 Python 對象體系的核心結構之一,它既是命名空間的載體,也是動態語言反射機制的根基。

      通過理解 __dict__,我們就能理解:

      命名綁定如何發生。

      屬性如何查找。

      對象如何隨命名空間生命周期而消亡。

      __dict__ 是對象存在的“記憶體”,記錄了 Python 世界中每一個名稱的來龍去脈。理解 __dict__ 是掌握 Python 對象模型和動態特性的基礎。

      點贊有美意,贊賞是鼓勵

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      雷軍 “魔法反彈” 護車主,車圈吵翻了!暖心護粉還是情緒失格?

      雷軍 “魔法反彈” 護車主,車圈吵翻了!暖心護粉還是情緒失格?

      小南看車
      2026-01-13 14:31:35
      山東省政協原常委王建祥涉嫌受賄罪、濫用職權罪被公訴

      山東省政協原常委王建祥涉嫌受賄罪、濫用職權罪被公訴

      齊魯壹點
      2026-01-13 16:33:50
      湖北打響政策“第一槍”:生娃直接送75㎡房子,樓市真相被戳破了

      湖北打響政策“第一槍”:生娃直接送75㎡房子,樓市真相被戳破了

      巢客HOME
      2026-01-13 06:45:03
      美國改口晚了!歐洲考慮倒向中國,丹麥下放開火權,要讓北約陪葬

      美國改口晚了!歐洲考慮倒向中國,丹麥下放開火權,要讓北約陪葬

      一桶漿糊要一統江湖
      2026-01-12 19:55:03
      七國集團達成共識:將減少進口中國稀土!中方表態

      七國集團達成共識:將減少進口中國稀土!中方表態

      芯智訊
      2026-01-13 17:59:56
      中國股市賺錢的有且只有一種人:用80%時間等待,用20%時間去操作

      中國股市賺錢的有且只有一種人:用80%時間等待,用20%時間去操作

      一方聊市
      2025-12-23 14:08:09
      英聯杯前瞻|紐卡2-1曼城:阿隆森要來了,瓜帥還能撐多久?

      英聯杯前瞻|紐卡2-1曼城:阿隆森要來了,瓜帥還能撐多久?

      體育世界
      2026-01-13 15:12:22
      安徽一男子再婚被16歲雙胞胎兒子送上婚車:前妻患癌走了,照料11年沒有留住

      安徽一男子再婚被16歲雙胞胎兒子送上婚車:前妻患癌走了,照料11年沒有留住

      大象新聞
      2026-01-13 12:45:03
      經常看書的人和不看書的人有什么區別?

      經常看書的人和不看書的人有什么區別?

      夜深愛雜談
      2026-01-13 21:23:05
      拒絕分蛋糕,所以沒戲拍?他的消失是任性還是清醒!

      拒絕分蛋糕,所以沒戲拍?他的消失是任性還是清醒!

      毒舌八卦
      2026-01-11 22:50:55
      遼寧垮了!不重建又想撿漏,進攻效率倒數,對手包夾威爾斯就能贏

      遼寧垮了!不重建又想撿漏,進攻效率倒數,對手包夾威爾斯就能贏

      籃球資訊達人
      2026-01-14 00:44:12
      小鷹連發兩文痛斥皇馬球星:一群被寵壞的孩子把阿隆索趕走了

      小鷹連發兩文痛斥皇馬球星:一群被寵壞的孩子把阿隆索趕走了

      懂球帝
      2026-01-13 22:18:18
      黃油歐美賣爆,頓頓都離不開,為啥中國人卻不愛,超市也很少賣?

      黃油歐美賣爆,頓頓都離不開,為啥中國人卻不愛,超市也很少賣?

      攬星河的筆記
      2025-12-08 13:30:38
      今年冬天,為啥去飯店吃飯的人越來越少了?內行道出4個現實原因

      今年冬天,為啥去飯店吃飯的人越來越少了?內行道出4個現實原因

      平說財經
      2026-01-12 22:58:56
      我國存款最安全的3大銀行,永遠都不會倒閉,你知道是哪3家嗎?

      我國存款最安全的3大銀行,永遠都不會倒閉,你知道是哪3家嗎?

      小熊侃史
      2026-01-07 11:17:59
      官宣回歸!27歲退役國乒名將復出上任,王楚欽樊振東或迎新挑戰

      官宣回歸!27歲退役國乒名將復出上任,王楚欽樊振東或迎新挑戰

      小染說臺球
      2026-01-13 12:08:07
      男子被騙柬埔寨后續:丈夫的兩次暗示讓妻子很崩潰,知情人曝更多

      男子被騙柬埔寨后續:丈夫的兩次暗示讓妻子很崩潰,知情人曝更多

      牛牛叨史
      2026-01-13 23:12:26
      還在上映!鬼滅之刃新劇場版票房正式突破390億

      還在上映!鬼滅之刃新劇場版票房正式突破390億

      隨波蕩漾的漂流瓶
      2026-01-13 18:50:11
      千人殺豬飯后續:5頭豬不夠吃,滿院狼藉無人收拾,文旅連夜下場

      千人殺豬飯后續:5頭豬不夠吃,滿院狼藉無人收拾,文旅連夜下場

      史行途
      2026-01-12 11:11:32
      山東豪取七連勝!沒想到邱彪賽后這么說,山東是我家,希望山東好

      山東豪取七連勝!沒想到邱彪賽后這么說,山東是我家,希望山東好

      小犙拍客在北漂
      2026-01-13 23:51:16
      2026-01-14 04:27:00
      MediaTea
      MediaTea
      專業的數字媒體、新媒體技術
      1705文章數 72關注度
      往期回顧 全部

      科技要聞

      每年10億美元!谷歌大模型注入Siri

      頭條要聞

      特朗普:已取消所有與伊朗官員的會談

      頭條要聞

      特朗普:已取消所有與伊朗官員的會談

      體育要聞

      他帶出國乒世界冠軍,退休后為愛徒返場

      娛樂要聞

      蔡卓妍承認新戀情,與男友林俊賢感情穩定

      財經要聞

      "天量存款"將到期 資金會否搬入股市?

      汽車要聞

      限時9.99萬元起 2026款啟辰大V DD-i虎鯨上市

      態度原創

      藝術
      本地
      旅游
      親子
      數碼

      藝術要聞

      461米!14億美元!越南第一高樓,形如“竹捆”

      本地新聞

      云游內蒙|到巴彥淖爾去,赴一場塞上江南的邀約

      旅游要聞

      順義區將硬核打造“工業時尚游”

      親子要聞

      小學和幼兒園老師2年減少45萬

      數碼要聞

      PC硬件全線漲價?這幾款RTX 50系游戲本竟敢“逆勢”維持原價

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 国产日韩成人内射视频| 三上悠亚精品二区在线观看| 成人3d动漫一区二区三区| 口爆吞精一区二区久久| 无码免费中文字幕视频| 亚洲欧美一区二区成人片| 精品国产一区二区三区香蕉蜜臂| 亚洲熟妇丰满多毛xxxx| 国产精品一亚洲AV日韩AV欧| 欲香欲色天天天综合和网| 成人国产AV| 亚洲激情视频一区二区三区| 久无码久无码av无码| 熟妇人妻系列aⅴ无码专区友真希| 亚洲AV无码成人精品区网页| 欧美最猛性xxxxx免费| 泽州县| 日本成本人片免费网站| 9191av| 久久99精品国产麻豆蜜芽| 影音先锋资源在线| 国产香蕉一区二区三区在线视频| 国产va免费精品高清在线观看| 亚洲AV第二区国产精品| 欧美成视频在线观看| 九九热视频在线观看| 久久久久久av无码免费看大片| 久久精品无码专区免费东京热| 少妇xxxxx| 人人澡人人透人人爽| 精品精品亚洲高清a毛片| 国产成人午夜精品福利| 无码国产偷倩在线播放老年人| 欧美久久亚洲精品| 国精产品一区一区三区有限在线| 高唐县| 亚洲色偷拍区另类无码专区| 国产制服丝袜在线播放| 日韩?人妻?无码?制服| 影音先锋成人在线| 亚洲成av|