Python中的下劃線

2021-08-22 08:35:02 字數 894 閱讀 5756

python中會出現單下劃線和雙下劃線的區別問題

>>> class myclass():

... def __init__(self):

... self.__superprivate = "hello"

... self._semiprivate = ", world!"

...>>> mc = myclass()

>>> print mc.__superprivate

traceback (most recent call last):

file "", line 1, in attributeerror: myclass instance has no attribute '__superprivate'

>>> print mc._semiprivate

, world!

>>> print mc.__dict__

_foo_:一種約定,python內部的名字,用來區別其他使用者自定義的命名,以防衝突,就是例如init(),del(),call()這些特殊方法

_foo:一種約定,用來指定變數私有.程式設計師用來指定私有變數的一種方式.不能用from module import * 匯入,其他方面和公有一樣訪問;

_foo:這個有真正的意義:解析器用_classname__foo來代替這個名字,以區別和其他類相同的命名,它無法直接像公有成員一樣隨便訪問,通過物件名.類名__***這樣的方式可以訪問.

詳情見:

或者:

Python中單下劃線和雙下劃線

python中存在一些特殊的方法,有些方法以雙下劃線 開頭和結尾,它們是python的魔法函式,比如 init 和 str 等等。不用要這種方式命名自己的變數或者函式。class a def init self,text self.text text def str self return self...

Python中單下劃線和雙下劃線

雙下劃線開頭和結尾 python中存在一些特殊的方法,有些方法以雙下劃線 開頭和結尾,它們是python的魔法函式,比如 init 和 str 等等。不用要這種方式命名自己的變數或者函式。classa def init self,text self.text text def str self re...

python中單下劃線 和雙下劃線(

函式使用單下劃線 開頭 使用單下劃線 開頭的函式 func不能被模組外部以 from module www.cppcns.comimport 形式匯入。但程式設計客棧可以用 from module import func形式單獨匯入。類屬性和類方法使用單下劃線 開頭 開頭為保護型別的屬性和方法,僅允...