日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python中的單下劃線與雙下劃線以及絕對導入與相對導入_python

作者:打工人小飛 ? 更新時間: 2022-12-05 編程語言

單下劃線與雙下劃線

在 python 中,會看到 _xx, xx 以及 __xx 這樣的變量或者函數名,在這里做一個簡要的總結。

  • _xx:保護(protected)變量或函數,意思是只有類對象和子類對象能夠訪問到這些變量,不能用 ‘from module import *’ 導入。當變量或函數是私有的時候,用 _xx 來表示是很好的習慣。;
  • __xx:私有成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數據;
  • _xx_:代表 python 里特殊方法專用的標識,如 _init_() 代表類的構造函數。變量名 _xx_ 對 python 來說有特殊含義,對于普通的變量應當避免這種命名風格。

下劃線對解釋器有特殊的意義,而且是內建標識符所使用的符號,應避免用下劃線作為變量名的開始。

絕對導入與相對導入

既然上文說到了包的導入,就順便把 python 的包內導入規則說一下,分為絕對導入與相對導入。

  • 相對導入:在不指明 package 名的情況下導入自己這個 package 的模塊,比如一個 package 下有 a.py 和 b.py 兩個文件,在 a.py 里 from . import b 即是相對導入 b.py;
  • 絕對導入:指明頂層 package 名。比如 import a,python 會在 sys.path 里尋找所有名為 a 的頂層模塊。

在 3.0 以前的舊版本中啟用相對導入等特性所必須的 _future_ 語句:

from __future__ import absolute_import

python 包的概念:包含 _init_.py 文件的目錄,該文件在包導入時會被首先執行,該文件可以為空,也可以在其中加入任意合法的 python 代碼。

相對導入的特點:可以避免硬編碼帶來的維護問題,例如我們改了某一頂層包的名,那么其子包所有的導入就都不能用了。

但是 存在相對導入語句的模塊,不能直接運行,否則會有異常:

ValueError: Attempted relative import in non-package

盡管使用相對導入看起來像是瀏覽文件系統,但是不能到定義包的目錄之外。也就是說,使用點的這種模式從不是包的目錄中導入將會引發錯誤。

絕對導入的特點:可以避免與標準庫命名的沖突,實際上也不推薦自定義模塊與標準庫命令相同。

硬編碼的概念

與軟編碼的區別是,軟編碼可以在運行時確定,修改;而硬編碼是不能夠改變的。

舉個例子:

例如求圓的面積問題,那么 3.14*r*r 就是硬編碼,而 PI*r*r 就不是硬編碼。

把數值寫成常數而不是變量即硬編碼。

原文鏈接:https://huangfei.blog.csdn.net/article/details/81072335

欄目分類
最近更新