首頁 >後端開發 >Python教學 >Python 物件名稱中的單下劃線和雙下劃線有什麼區別?

Python 物件名稱中的單下劃線和雙下劃線有什麼區別?

DDD
DDD原創
2024-12-24 08:32:14606瀏覽

What's the Difference Between Single and Double Underscores in Python Object Names?

揭秘 Python 物件名稱中的底線

在 Python 中,命名約定在物件命名中起著至關重要的作用。物件名稱前的單下劃線和雙下劃線具有特定意義,可指導程式設計師理解該物件的範圍和可訪問性。

單下劃線 (_name)

物件名稱中的單一前導下劃線表示它供類內部使用。這是一種指示物件不打算從類別外部存取或修改的方法。但是,需要注意的是,此約定是指導原則,而不是強制限制。

單下劃線也用來表示不應從其他地方導入的模組或函數。透過在物件名稱前面加上底線前綴,它向其他程式設計師表明它應被視為私有元素。

雙底線 (__name__)

雙前導底線用於名稱修改,這是一種在幕後修改物件名稱的技術。此轉換將物件的名稱替換為包含類別名稱和底線的修改版本。

根據 Python 文檔,雙底線表示物件應被視為當前類別中的私有變數或方法。然而,重要的是要明白名稱修改並不是絕對的。有決心的個人仍然可以存取或修改標記為私有的變數。

範例

讓我們考慮以下Python 類別:

class MyClass():
    def __init__(self):
        self.__superprivate = "Hello"
        self._semiprivate = ", world!"

mc = MyClass()
print(mc._semiprivate)  # Accessible
print(mc.__superprivate)  # Not accessible outside the class

中在此範例中,__superprivate 變數使用雙底線標示為私有,而_semiprivate 變數使用單下劃線下劃線。 __superprivate 變數在類別外部不可訪問,而 _semiprivate 變數可以訪問,但應被視為類別內部。

以上是Python 物件名稱中的單下劃線和雙下劃線有什麼區別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn