首頁 >後端開發 >Python教學 >Python 中單底線和雙底線有什麼不同?

Python 中單底線和雙底線有什麼不同?

Linda Hamilton
Linda Hamilton原創
2024-12-22 12:07:411021瀏覽

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

深入研究 Python 的單下劃線和雙下劃線

Python 在物件名稱之前使用前導下劃線來傳達特定的含義和行為。

單下劃線:「內部使用」指示符

單一底線表示屬性或方法旨在在其自己的類別中使用。這是阻止外部存取的約定,而不是強制規則。此外,當模組中的函數名稱前面有一個下劃線時,這表示不應從模組外部匯入它們。

雙下劃線:名稱修飾

雙下劃線觸發名稱修改,這是一個過程,其中標識符以類名為前綴,並刪除前導下劃線。這是為「私有」類別成員完成的,以避免與衍生類別或外部程式碼的成員發生衝突。但是,請務必注意,確定的使用者仍然可以存取這些變數。

範例:

在以下範例中,__superprivate 旨在類別外部不可訪問,而_semiprivate則遵循內部使用的約定:

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

在類別外存取這些成員時,只有_semiprivate會被揭露:

mc = MyClass()
print(mc._semiprivate)  # "Hello"
print(mc.superprivate)  # Attribute error

因此,單下劃線表示預期內部使用,而雙下劃線則保護成員不被名稱修改直接訪問,提供隱私層,但不是絕對安全。

以上是Python 中單底線和雙底線有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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