python 變量前的 單下劃線 雙下劃線

轉自:https://blog.csdn.net/u013205877/article/details/77427785 

 

1.單下劃線

變量前的單下劃線表示表面上私有 
但是其實這樣的實例變量外部是可以訪問的,但是,按照約定俗成的規定,當你看到這樣的變量時,意思就是,“雖然我可以被訪問,但是,請把我視爲私有變量,不要隨意訪問”。

例子:

class convertstrtoint:
    _name = "zhangkun333"
    __namedede = "zhangkun444"

print convertstrtoint._name
print convertstrtoint.__namedede
#輸出
zhangkun333
Traceback (most recent call last):
  File "C:/zqxt/devnav/pythonnav/test.py", line 74, in <module>
    print convertstrtoint.__namedede
AttributeError: class convertstrtoint has no attribute '__namedede'


2.雙下劃線

變量前的單下劃線表示真正的私有,實際上的私有,只有內部可以訪問,外部不能訪問 
但是有竅門,可以在類裏面增加get__namedede和set__namedede這樣的方法來突破限制,而且還能在方法裏做驗證

例子

class convertstrtoint:
    _name = "zhangkun333"
    __namedede = "zhangkun444"

    def get_namedede(self):
        return self.__namedede

    def set_namedede(self,s):
        self.__namedede = s

print convertstrtoint._name
rrr = convertstrtoint()
print rrr.get_namedede()
you = "you"
rrr.set_namedede(you)
print rrr.get_namedede()


其他(如:init):名稱前後的雙下劃線是一種慣例,對Python系統來說,這將確保不會與用戶自定義的名稱衝突。通常,你將會覆寫這些方法,並在裏面實現你所需要的功能,以便Python調用它們。例如,當定義一個類時,你經常會覆寫“init”方法
 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章