欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的單下劃線和雙下劃線使用場景詳解

 更新時間:2019年09月09日 10:09:05   作者:Mr汪  
這篇文章主要介紹了Python中的單下劃線和雙下劃線使用場景詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

單下劃線

單下劃線用作變量

最常見的一種使用場景是作為變量占位符,使用場景明顯可以減少代碼中多余變量的使用。為了方便理解,_可以看作被丟棄的變量名稱,這樣做可以讓閱讀你代碼的人知道,這是個不會被使用的變量,e.g.。

for _, _, filenames in os.walk(targetDir):
  print(filenames)
  
for _ in range(100):
  print('PythonPoint')

在交互解釋器比如iPython中,_變量指向交互解釋器中最后一次執(zhí)行語句的返回結果。

單下劃線前綴名稱(例如_pythonPoint)

  • 這表示這是一個保護成員(屬性或者方法),只有類對象和子類對象自己能訪問到這些變量,是用來指定私有變量和方法的一種方式(約定而已)。如果使用from a_module import *導入時,這部分變量和函數(shù)不會被導入。不過值得注意的是,如果使用import a_module這樣導入模塊,仍然可以用a_module._pythonPoint這樣的形式訪問到這樣的對象。
  • 另外單下劃線開頭還有一種一般不會用到的情況,例如使用一個C編寫的擴展庫有時會用下劃線開頭命名,然后使用一個去掉下劃線的Python模塊進行包裝。如struct這個模塊實際上是C模塊_struct的一個Python包裝。

單下劃線后綴名稱

通常用于和Python關鍵詞區(qū)分開來,比如我們需要一個變量叫做class,但class是Python的關鍵詞,就可以以單下劃線結尾寫作class_。

雙下劃線

雙下劃線前綴名稱

這表示這是一個私有成員(屬性或者方法)。它無法直接像公有成員一樣隨便訪問。雙下劃線開頭的命名形式在Python的類成員中使用表示名字改編,即如果Test類里有一成員__x,那么dir(Test)時會看到_Test__x而非__x。這是為了避免該成員的名稱與子類中的名稱沖突,方便父類和子類中該成員的區(qū)分識別。但要注意這要求該名稱末尾最多有一個下劃線。e.g.

雙下劃線前綴及后綴名稱

一種約定,Python內部的名字,用來區(qū)別其他用戶自定義的命名,以防沖突。是一些Python的“魔術”對象,表示這是一個特殊成員。如類成員的__init__、__del__、__add__等,以及全局的__file__、__name__等。Python官方推薦永遠不要將這樣的命名方式應用于自己的變量或函數(shù),而是按照文檔說明來使用Python內置的這些特殊成員。

Python中關于私有屬性、方法約定問題,官方文檔如下

“Private” instance variables that cannot be accessed except from inside an object don't exist in Python. However, there is a convention that is followed by most Python code: a name prefixed with an underscore (e.g. _spam) should be treated as a non-public part of the API (whether it is a function, a method or a data member). It should be considered an implementation detail and subject to change without notice.

Since there is a valid use-case for class-private members (namely to avoid name clashes of names with names defined by subclasses), there is limited support for such a mechanism, called name mangling. Any identifier of the form__spam (at least two leading underscores, at most one trailing underscore) is textually replaced with _classname__spam, where classname is the current class name with leading underscore(s) stripped. This mangling is done without regard to the syntactic position of the identifier, as long as it occurs within the definition of a class.

Name mangling is helpful for letting subclasses override methods without breaking intraclass method calls.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python使用sklearn庫實現(xiàn)的各種分類算法簡單應用小結

    Python使用sklearn庫實現(xiàn)的各種分類算法簡單應用小結

    這篇文章主要介紹了Python使用sklearn庫實現(xiàn)的各種分類算法,結合實例形式分析了Python使用sklearn庫實現(xiàn)的KNN、SVM、LR、決策樹、隨機森林等算法實現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • Python入門篇之函數(shù)

    Python入門篇之函數(shù)

    本篇文章將介紹如何將語句組織成函數(shù),以及參數(shù)概念以及在程序中的用途,需要的朋友可以參考下
    2014-10-10
  • 一行代碼解決動態(tài)執(zhí)行Python函數(shù)方法實例

    一行代碼解決動態(tài)執(zhí)行Python函數(shù)方法實例

    這篇文章主要為大家介紹了如何用一行代碼解決動態(tài)執(zhí)行Python函數(shù)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Python3實現(xiàn)統(tǒng)計單詞表中每個字母出現(xiàn)頻率的方法示例

    Python3實現(xiàn)統(tǒng)計單詞表中每個字母出現(xiàn)頻率的方法示例

    這篇文章主要介紹了Python3實現(xiàn)統(tǒng)計單詞表中每個字母出現(xiàn)頻率的方法,涉及Python針對文件的讀取、遍歷、統(tǒng)計等相關操作技巧,需要的朋友可以參考下
    2019-01-01
  • Python端口掃描簡單程序

    Python端口掃描簡單程序

    這篇文章主要為大家詳細介紹了Python端口掃描簡單程序的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • pandas中merge函數(shù)的用法

    pandas中merge函數(shù)的用法

    merge()函數(shù)是Pandas中用于合并兩個DataFrame的函數(shù),本文主要介紹了pandas中merge函數(shù)的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • python單例模式獲取IP代理的方法詳解

    python單例模式獲取IP代理的方法詳解

    在使用python對網頁進程訪問時,以防被禁止,可用使用代理IP的方法減少被禁的可能,下面這篇文章主要給大家介紹了關于python單例模式獲取IP代理的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧
    2018-09-09
  • Python中按鍵來獲取指定的值

    Python中按鍵來獲取指定的值

    今天小編就為大家分享一篇關于Python中按鍵來獲取指定的值,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Python?multiprocessing?共享對象的示例代碼

    Python?multiprocessing?共享對象的示例代碼

    在 Python 中使用 multiprocessing,一個新的進程可以獨立運行并擁有自己的內存空間,下面通過示例代碼講解Python multiprocessing共享對象的相關知識,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • Python3.7實現(xiàn)驗證碼登錄方式代碼實例

    Python3.7實現(xiàn)驗證碼登錄方式代碼實例

    這篇文章主要介紹了Python3.7實現(xiàn)驗證碼登錄方式代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02

最新評論