首頁 >後端開發 >Python教學 >單下劃線和雙底線如何影響 Python 中變數和方法的可見性?

單下劃線和雙底線如何影響 Python 中變數和方法的可見性?

Patricia Arquette
Patricia Arquette原創
2024-12-22 08:19:09861瀏覽

How Do Single and Double Underscores Affect Variable and Method Visibility in Python?

揭開下劃線:了解Python 中的單下劃線和雙下劃線

在Python 中,標識符下劃線兩個前導線可以改變其在類別或模組中的含義和可見性。

單一底線:內部使用指示符

前導下劃線表示屬性或方法供目前類別內部使用。然而,這只是一個約定;隱私不被強制執行。此外,模組函數中的單前導下劃線表示它們不應由外部模組導入。

雙底線:名稱竄改

兩個前導底線表示名稱竄改。這些標識符在內部進行轉換,並在前面添加了 ClassName,其中 ClassName 是刪除了前導下劃線的當前類別名稱。該機制允許定義類別私有實例和類別變量,並提供一些針對外部存取的保護。然而,值得注意的是,名稱修改並不能保證絕對的隱私,因為有決心的個人仍然可以存取私有變數。

範例:

考慮以下類別:

class MyClass():
    def __init__(self):
        self.__superprivate = "Hello"
        self._semiprivate = ", world!"
  • __superprivate 是真正的私有變量,只能在MyClass 實例中訪問,不能可以直接從外部訪問。
  • _semiprivate 通常是私有的,但可以直接存取。

如範例輸出所示,直接存取 __superprivate 會導致 AttributeError,而 _semiprivate 可以已存取。

__dict__ 屬性揭示了 __superprivate 和 _semiprivate 都已損壞,確認名稱修改機制。

以上是單下劃線和雙底線如何影響 Python 中變數和方法的可見性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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