1. python中的下橫線是什麼意思
Python中的下橫線是什麼意思
下劃線一般有兩種情況:
1、兩邊都有兩個下劃線的情況:這一般是指內建預定義屬性,這種內建預定義屬性。
2、中間一根下劃線:這個命名中兩個單詞的分割線,這個以前OO編程中單詞首字母大寫差不多一個作用,只不過一般python的模塊函數編程會用下劃線分割這種方式。
更多技術請關注Python視頻教程。
2. python 變數下劃線命名規則
單下劃線和雙下劃線在Python變數、類、模塊命名中都有不懂的含義,名稱中都各有其含義。有一些是程序員之間約定俗成的,Python解釋器不用強制其執行,但有些Python解釋器會強制執行。
本文從以下幾種不同使用方式,對下劃線的用途和含義進行說明:
1)變數
通常用於類內部變數的命名,表明該變數是該類私用變數,外部不要去訪問它,但也是可以訪問到的。這只是程序員之間的一個約定俗成的做法,Python解釋器本身不會對它進行限制。
我們創建一個類:
實例化A,並訪問它的變數,aa._bar 也是可以訪問的,但既然人家這么命名了,外部最好不要去訪問了
2)函數和模塊
和變數一樣,這是一個私有函數,不建議外部程序調用該函數。
我們創建一個腳本aa.py, 裡面有2個函數 _aa,bb:
導入aa,分別調用函數 _aa和bb,bb 可以調用,但顯示無 _aa
3)類
同變數和函數一樣,都是私有變數,外部最好不要調用
用來避免和Python內置函數命名產生沖突,PEP8解釋了這個約定。
如class或def不能用作Python中的變數名稱,如果之間用,會提示錯誤。如果你非要用它,可以 使用 class_或 def_。
還有一些函數名,如chr,chr()是Python內置函數,用來表示ascii碼對應的字元他的輸入時數字,可以用十進制,也可以用十六進制。如果你非要它來表示染色體,可以用chr_來代替。當然如果你直接使用它作為變數名,它也不會報錯,但最好不要這樣使用。
在python中定義私有變數只需要在變數名或函數名前加上 "__" (兩個下劃線),那麼這個函數或變數就會成為私有的了。
在內部,python使用一種 name mangling 技術,將__var 替換成 _classname__var,因此在外部調用__var會找不到,代替它的是_classname_var。這種處理方式叫做名稱修飾(name mangling):解釋器更改變數的名稱,以便在類被擴展的時候不容易產生沖突。
由雙下劃線前綴和後綴包圍的變數,不會應用名稱修飾,因此不會被Python解釋器修改:
我們創建一個類B,dir() 查看類的所有屬性,發現 存在 __aa__
但是,Python保留了有雙前導和雙末尾下劃線的名稱,用於特殊用途。 如,__init__對象構造函數,或 __call__ 它使得一個對象可以被調用。所有我們盡量不要使用這種方式命名變數,以免和Python解釋器內置的函數發生沖突。
_ 不加任何其他字元,單獨作為一個名字,用來表示某個臨時的或者無關緊要的變數。
舉例1: 表示一個臨時變數 。在下面的循環中,我們不需要獲取循環的索引,只是print n 行 'Hello World',可以用 "_" 來表示它只是一個臨時值:
舉例2: 表示一個不關心的變數 ,僅僅是個佔位符變數,用來佔位。mlist 列表中,我只想獲得1,2,4 位的變數,那 3 和 5 可以 用 _ 來佔位
舉例3 : 表示由解釋器評估的最近一個表達式的結果 ,方便進行查看。
3. python下劃線定義屬性
類的私有變數和私有方法
在Python中可以通過在屬性變數名前加上雙下劃線定義屬性為私有屬性
特殊變數命名
1、 _xx 以單下劃線開頭的表示的是protected類型的變數。即保護類型只能允許其本身與子類進行訪問。若內部變數標示,如: 當使用「from M import」時,不會將以一個下劃線開頭的對象引入 。
2、 __xx 雙下劃線的表示的是私有類型的變數。只能允許這個類本身進行訪問了,連子類也不可以用於命名一個類屬性(類變數),調用時名字被改變(在類FooBar內部,__boo變成_FooBar__boo,如self._FooBar__boo)
3、 __xx__定義的是特列方法。用戶控制的命名空間內的變數或是屬性,如init , __import__或是file 。只有當文檔有說明時使用,不要自己定義這類變數。 (就是說這些是python內部定義的變數名)
在這里強調說一下私有變數,python默認的成員函數和成員變數都是公開的,沒有像其他類似語言的public,private等關鍵字修飾.但是可以在變數前面加上兩個下劃線"_",這樣的話函數或變數就變成私有的.這是python的私有變數軋壓(這個翻譯好拗口),英文是(private name mangling.) **情況就是當變數被標記為私有後,在變數的前端插入類名,再類名前添加一個下劃線"_",即形成了_ClassName__變數名.**
Python內置類屬性
__dict__ : 類的屬性(包含一個字典,由類的數據屬性組成)
__doc__ :類的文檔字元串
__mole__: 類定義所在的模塊(類的全名是'__main__.className',如果類位於一個導入模塊mymod中,那麼className.__mole__ 等於 mymod)
__bases__ : 類的所有父類構成元素(包含了一個由所有父類組成的元組)
4. 編程中的下劃線是什麼意思
下劃線在C沒陵升缺有特殊含義。一般在命名變數和方程用作斷字元:integerarray,這樣命名變數會很難看,一般會:integerArray 或者integer_array這樣命名。一些程序包會經常看到:__Macro_A__ab。
這類的變數命名原因是為了避免命名重復。因為這些包被包含的時候他的頭文件的每個變數會在該模塊中佔用一個命名。為了方便使用者的編寫笑扒加入下劃線從而使使用者命名變數時方便點。例尺辯如如果包中命名的是abc,那麼使用者就不能使用abc來命名了。
(4)python文本下劃線類型擴展閱讀
標志
1、//雙斜杠是一種注釋標志。前面有//的語句只是用來注釋的,不是程序的一部分,只是為了讓你看懂你注釋的內容是作什麼用的。
2、/* */這個也是注釋用的,只不過可以換行寫。只要在兩個符號之間的東西,都是注釋。不像上面只能寫一行。
3、+ - * / 這是基本的運算符了,跟數學里的加減乘除一樣。再加上一個%,這個是求余數的,就像這樣3/5=0餘3. 在編程里表示成3%5=3。4. &,|,~這三個是對位操作用的,叫按位運算,即0&1=0,1|0=1. !0=1.