新聞中心
單個下劃線開頭表示這是一個非公共方法或?qū)傩?我們?yōu)閌_private_var`和`_private_method()`添加了前置單一下劃線。
- 本文目錄導(dǎo)讀:
- 1、什么是Python中的下劃線?
- 2、單獨使用下劃線
- 3、前置和后置單一下劃線
- 4、雙前置/后綴下劃線

什么是Python中的下劃線?
在Python編程語言中,下劃線(_)是一個常見而又神秘的符號。它有多種用途,包括作為變量名、函數(shù)參數(shù)和類屬性等。但許多初學(xué)者對于它到底代表什么意思感到困惑。
單獨使用下劃線
在Python中,單獨使用一個下劃線表示“我不關(guān)心這個變量的值”。比如說:
```
_, b = 1, 2
print(b) # 輸出2
上面代碼中,我們把第一個元素賦值給了`_`變量,在后續(xù)代碼執(zhí)行過程中沒有用到該變量。通常情況下我們會將其命名為無用或占位符。
同時,在交互式環(huán)境(REPL)里面,最近一次計算結(jié)果可以通過 `_ ` 訪問:
>>> a = 10 + 20
>>> _
30
```
當(dāng)然也可以定義成普通的變量名:
last_result = _
print(last_result)
前置和后置單一下劃線
以單個前置或后置下滑桿開頭/結(jié)尾時,則指示該名稱具有特殊含義。
- _xxx: 單個下劃線開頭表示這是一個非公共方法或?qū)傩浴?/p>
- xxx_: 單個下滑桿結(jié)尾表明它與Python關(guān)鍵字有所區(qū)別。
在編寫類時,前置單一下劃線的名稱通常用于指示該方法或?qū)傩允恰八接小钡?。例如?/p>
class MyClass:
def __init__(self):
self._private_var = 42
def _private_method(self):
return 'Hello, world!'
上面代碼中,我們?yōu)閌_private_var`和`_private_method()`添加了前置單一下劃線。這并沒有真正地使它們成為私有成員變量和函數(shù),但是建議不要從外部訪問這些變量。
雙前置/后綴下劃線
以兩個前置或后綴符號開頭/結(jié)尾的名稱具有特殊含義。如果你想定義一個名字與Python保留關(guān)鍵字相同的變量(例如 `lambda`, `class`, `yield`),則可以使用雙拖鞋來避免沖突。
此外,在類定義中還可以使用以下形式:
- \_\_xxx:雙前導(dǎo)下滑桿會導(dǎo)致Python解釋器重寫屬性名稱,以避免子類意外覆蓋父類中包含的屬性。
- xxx\_\_: 雙后綴符號被稱為“魔術(shù)”方法(magic methods),因為它們提供了實現(xiàn)對象的特殊行為的機(jī)會。
例如,我們可以使用雙前置下劃線來避免變量名與Python關(guān)鍵字沖突:
self.__lambda = 42
obj = MyClass()
print(obj._MyClass__lambda) # 輸出42
上面代碼中,我們在`__init__()`方法中定義了一個名為`__lambda`的實例變量。但是由于雙前綴下劃線,該變量被重命名為`_MyClass_lambda`, 我們通過這個新名稱訪問它。
盡管看起來有些神秘和復(fù)雜,但Python中的下劃線其實很簡單易懂。只需要理解每種用法背后的含義,并根據(jù)需要靈活運用即可。
希望本文能夠?qū)δ愀钊氲亓私膺@個常見符號有所幫助!
當(dāng)前題目:Python中的下劃線:解密這個神秘符號
網(wǎng)頁地址:http://m.5511xx.com/article/dpddgjp.html


咨詢
建站咨詢
