中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python變量中單下劃線和雙下劃線的區別是什么

發布時間:2021-10-25 18:20:03 來源:億速云 閱讀:188 作者:柒染 欄目:編程語言

python變量中單下劃線和雙下劃線的區別是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、變量的定義

在Python中,有以下幾種方式來定義變量:

xx:公有變量

_xx:前置單下劃線,私有化屬性或方法,一般來講,變量名_xx被看作是“私有 的”,在模塊或類外不可以使用。當變量是私有的時候,用_xx 來表示變量是很好的習慣。類對象和子類可以訪問,這并不能完全做到真正的私有,只是約定俗成的而已,這樣寫表示不希望這個變量在外部被直接調用

__xx:前置雙下劃線,私有化屬性或方法,無法在外部直接訪問(名字重整所以訪問不到,只能是允許這個類本身進行訪問了。連子類也不可以)

__xx__:前后雙下劃線,系統定義名字(這就是在python中強大的魔法方法),因為變量名__xxx__對Python 來說有特殊含義,對于普通的變量應當避免這種命名風格。

xx_:后置單下劃線,用于避免與Python關鍵詞的沖突

如以下例子所示,我在test類中定義了x,_x和 __x三個屬性,并創建了test的類對象t,對這三個屬性進行訪問,__x不能被訪問到

python變量中單下劃線和雙下劃線的區別是什么

學習從來不是一個人的事情,要有個相互監督的伙伴,工作需要學習python或者有興趣學習python的伙伴可以私信回復小編“學習” 獲取資料,一起學習

可以使用命令dir查看t中的屬性和方法,__x的名字已經被重整為“_test__x”了,如果你非要通過外部訪問,也是可以的,可以使用t._test__x對__x進行訪問。

python中沒有真正的公有和私有變量,python只是對變量名稱做了一個變化,還是可以在外部訪問到的,是偽私有。

注:雖然私有變量可以通過_類名__變量名來訪問,但強烈建議不要這樣做!

二、使用不同方法導入模塊,模塊中私有變量的使用區別

在使用不同方法導入模塊后,是否能使用模塊中的私有屬性和方法,有以下兩種情況

使用 from somemodule import * 進行導入,不能導入私有變量,結果如下:

在使用 import somemodule 導入模塊的情況下,能導入并使用私有屬性和方法

三、對類中的私有屬性進行操作的方法

如果你想對類中的私有屬性進行操作時,有以下兩種方法種方法:

python變量中單下劃線和雙下劃線的區別是什么

python變量中單下劃線和雙下劃線的區別是什么

注:

1,在構造函數__init__中是_x,不是x,你直接x是訪問不到的;

2,為什么是_x 而不是x,這是python中的私有變量(雖然python中沒有公有變量和私有變量,也就是說這是偽私有),在python中,如果一個變量不想被外部直接訪問,一般是在變量前加一個下劃線,提醒不要直接訪問(其實是可以通過self._x訪問到的,如果不想被訪問還可以使用雙下劃線__x,也是不能直接訪問)所以提供get_x這樣的函數供使用者訪問;

3,為什么要使用_x這樣的偽私有變量,因為我們使用property時,讓方法變成屬性的方式來調用,一般是這樣寫x=property(...),這樣調用更加清晰明了;但是如果構造函數中的變量也用x,就會和property中的變量有沖突,所有一般我們寫_x

看完上述內容,你們掌握python變量中單下劃線和雙下劃線的區別是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛曲县| 关岭| 那坡县| 阿克陶县| 余姚市| 宁河县| 临漳县| 西昌市| 丹江口市| 克什克腾旗| 社会| 东海县| 镇远县| 张家口市| 临颍县| 平乡县| 桦川县| 潜江市| 东海县| 吉安县| 昌乐县| 琼海市| 湘潭县| 涞源县| 武乡县| 海林市| 海城市| 元朗区| 宜兰市| 荣昌县| 长兴县| 额济纳旗| 保亭| 阜阳市| 黑水县| 木兰县| 黎平县| 兴山县| 中江县| 沾益县| 前郭尔|