在python中,所有標(biāo)識符可以包括英文、數(shù)字以及下劃線(_),但不能以數(shù)字開頭。python中的標(biāo)識符是區(qū)分大小寫的。\x0d\x0a----這是知識背景------\x0d\x0a但是通常python的變成習(xí)慣以下劃線開頭的標(biāo)識符是有特殊意義的。以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用“from xxx import *”而導(dǎo)入;以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結(jié)尾的(__foo__)代表python里特殊方法專用的標(biāo)識,如__init__()代表類的構(gòu)造函數(shù)。\x0d\x0a\x0d\x0a在交互模式下運行python時,一個下劃線字符(_)是特殊標(biāo)識符,它保留了表達式的最后一個計算結(jié)果。\x0d\x0a\x0d\x0a "hello"\x0d\x0a'hello

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),東烏珠穆沁企業(yè)網(wǎng)站建設(shè),東烏珠穆沁品牌網(wǎng)站建設(shè),網(wǎng)站定制,東烏珠穆沁網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,東烏珠穆沁網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
_\x0d\x0a'hello
10+10\x0d\x0a20\x0d\x0a _\x0d\x0a20\x0d\x0a\x0d\x0a在python中,函數(shù)、類、模塊定義的第一段代碼如果是字符串的話,就把它叫作文件字串,可通過__doc__屬性訪問。如:\x0d\x0a\x0d\x0adef test():\x0d\x0a"this is a document string"\x0d\x0a\x0d\x0areturn 100+1000\x0d\x0a\x0d\x0aprint test.__doc__\x0d\x0athis is a document string
類的私有變量和私有方法
在Python中可以通過在屬性變量名前加上雙下劃線定義屬性為私有屬性
特殊變量命名
1、 _xx 以單下劃線開頭的表示的是protected類型的變量。即保護類型只能允許其本身與子類進行訪問。若內(nèi)部變量標(biāo)示,如: 當(dāng)使用“from M import”時,不會將以一個下劃線開頭的對象引入 。
2、 __xx 雙下劃線的表示的是私有類型的變量。只能允許這個類本身進行訪問了,連子類也不可以用于命名一個類屬性(類變量),調(diào)用時名字被改變(在類FooBar內(nèi)部,__boo變成_FooBar__boo,如self._FooBar__boo)
3、 __xx__定義的是特列方法。用戶控制的命名空間內(nèi)的變量或是屬性,如init , __import__或是file 。只有當(dāng)文檔有說明時使用,不要自己定義這類變量。 (就是說這些是python內(nèi)部定義的變量名)
在這里強調(diào)說一下私有變量,python默認(rèn)的成員函數(shù)和成員變量都是公開的,沒有像其他類似語言的public,private等關(guān)鍵字修飾.但是可以在變量前面加上兩個下劃線"_",這樣的話函數(shù)或變量就變成私有的.這是python的私有變量軋壓(這個翻譯好拗口),英文是(private name mangling.) **情況就是當(dāng)變量被標(biāo)記為私有后,在變量的前端插入類名,再類名前添加一個下劃線"_",即形成了_ClassName__變量名.**
Python內(nèi)置類屬性
__dict__ : 類的屬性(包含一個字典,由類的數(shù)據(jù)屬性組成)
__doc__ :類的文檔字符串
__module__: 類定義所在的模塊(類的全名是'__main__.className',如果類位于一個導(dǎo)入模塊mymod中,那么className.__module__ 等于 mymod)
__bases__ : 類的所有父類構(gòu)成元素(包含了一個由所有父類組成的元組)
Python中的下橫線是什么意思
下劃線一般有兩種情況:
1、兩邊都有兩個下劃線的情況:這一般是指內(nèi)建預(yù)定義屬性,這種內(nèi)建預(yù)定義屬性。
2、中間一根下劃線:這個命名中兩個單詞的分割線,這個以前OO編程中單詞首字母大寫差不多一個作用,只不過一般python的模塊函數(shù)編程會用下劃線分割這種方式。
更多技術(shù)請關(guān)注Python視頻教程。
單下劃線和雙下劃線在Python變量、類、模塊命名中都有不懂的含義,名稱中都各有其含義。有一些是程序員之間約定俗成的,Python解釋器不用強制其執(zhí)行,但有些Python解釋器會強制執(zhí)行。
本文從以下幾種不同使用方式,對下劃線的用途和含義進行說明:
1)變量
通常用于類內(nèi)部變量的命名,表明該變量是該類私用變量,外部不要去訪問它,但也是可以訪問到的。這只是程序員之間的一個約定俗成的做法,Python解釋器本身不會對它進行限制。
我們創(chuàng)建一個類:
實例化A,并訪問它的變量,aa._bar 也是可以訪問的,但既然人家這么命名了,外部最好不要去訪問了
2)函數(shù)和模塊
和變量一樣,這是一個私有函數(shù),不建議外部程序調(diào)用該函數(shù)。
我們創(chuàng)建一個腳本aa.py, 里面有2個函數(shù) _aa,bb:
導(dǎo)入aa,分別調(diào)用函數(shù) _aa和bb,bb 可以調(diào)用,但顯示無 _aa
3)類
同變量和函數(shù)一樣,都是私有變量,外部最好不要調(diào)用
用來避免和Python內(nèi)置函數(shù)命名產(chǎn)生沖突,PEP8解釋了這個約定。
如class或def不能用作Python中的變量名稱,如果之間用,會提示錯誤。如果你非要用它,可以 使用 class_或 def_。
還有一些函數(shù)名,如chr,chr()是Python內(nèi)置函數(shù),用來表示ascii碼對應(yīng)的字符他的輸入時數(shù)字,可以用十進制,也可以用十六進制。如果你非要它來表示染色體,可以用chr_來代替。當(dāng)然如果你直接使用它作為變量名,它也不會報錯,但最好不要這樣使用。
在python中定義私有變量只需要在變量名或函數(shù)名前加上 "__" (兩個下劃線),那么這個函數(shù)或變量就會成為私有的了。
在內(nèi)部,python使用一種 name mangling 技術(shù),將__var 替換成 _classname__var,因此在外部調(diào)用__var會找不到,代替它的是_classname_var。這種處理方式叫做名稱修飾(name mangling):解釋器更改變量的名稱,以便在類被擴展的時候不容易產(chǎn)生沖突。
由雙下劃線前綴和后綴包圍的變量,不會應(yīng)用名稱修飾,因此不會被Python解釋器修改:
我們創(chuàng)建一個類B,dir() 查看類的所有屬性,發(fā)現(xiàn) 存在 __aa__
但是,Python保留了有雙前導(dǎo)和雙末尾下劃線的名稱,用于特殊用途。 如,__init__對象構(gòu)造函數(shù),或 __call__ 它使得一個對象可以被調(diào)用。所有我們盡量不要使用這種方式命名變量,以免和Python解釋器內(nèi)置的函數(shù)發(fā)生沖突。
_ 不加任何其他字符,單獨作為一個名字,用來表示某個臨時的或者無關(guān)緊要的變量。
舉例1: 表示一個臨時變量 。在下面的循環(huán)中,我們不需要獲取循環(huán)的索引,只是print n 行 'Hello World',可以用 "_" 來表示它只是一個臨時值:
舉例2: 表示一個不關(guān)心的變量 ,僅僅是個占位符變量,用來占位。mlist 列表中,我只想獲得1,2,4 位的變量,那 3 和 5 可以 用 _ 來占位
舉例3 : 表示由解釋器評估的最近一個表達式的結(jié)果 ,方便進行查看。
單行注釋:# + 空格 + 注釋
語句后注釋:兩個空格 + # + 空格 + 注釋
PyCharm在定義函數(shù)之前空兩行,使用函數(shù)之前空兩行來消除下劃線
4、字典
冒號后加一個空格去除下劃線
文章標(biāo)題:python函數(shù)下劃線 python函數(shù)前加下劃線
網(wǎng)址分享:http://chinadenli.net/article34/hpjgpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、動態(tài)網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)