揭開下劃線:了解Python 中的單下劃線和雙下劃線
在Python 中,標識符下劃線兩個前導線可以改變其在類別或模組中的含義和可見性。
單一底線:內部使用指示符
前導下劃線表示屬性或方法供目前類別內部使用。然而,這只是一個約定;隱私不被強制執行。此外,模組函數中的單前導下劃線表示它們不應由外部模組導入。
雙底線:名稱竄改
兩個前導底線表示名稱竄改。這些標識符在內部進行轉換,並在前面添加了 ClassName,其中 ClassName 是刪除了前導下劃線的當前類別名稱。該機制允許定義類別私有實例和類別變量,並提供一些針對外部存取的保護。然而,值得注意的是,名稱修改並不能保證絕對的隱私,因為有決心的個人仍然可以存取私有變數。
範例:
考慮以下類別:
class MyClass(): def __init__(self): self.__superprivate = "Hello" self._semiprivate = ", world!"
如範例輸出所示,直接存取 __superprivate 會導致 AttributeError,而 _semiprivate 可以已存取。
__dict__ 屬性揭示了 __superprivate 和 _semiprivate 都已損壞,確認名稱修改機制。
以上是單下劃線和雙底線如何影響 Python 中變數和方法的可見性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!