Python 簡易手冊

單元 10 - 底線

以下整理 Python 中底線的用法

識別字命名

底線很常用在識別字命名,例如以下用底線連接不同的英文單字

  
my_variable = 0

用底線開頭命名的識別字是合乎語法規則的,如下

  
_variable = 0

包括單獨以底線為識別字名稱,例如

  
_ = 22

但是不建議用底線開頭命名的識別字或是單獨以底線為識別字名稱,這是因為底線在 Python 有不少如下面提到的特殊用法,避免在程式中造成混淆,所以除了連接英文單字外,請避免直接使用底線來命名。

整數字面常數中分隔

底線可以在整數字面常數替數字作分隔,例如以千為單位做分隔

  
a = 100_000_000

或是以下以萬單位做分隔

  
a = 1_0000_0000

實際上 Python 並沒有限制分隔的位數,因此可以依需求用底線分隔大整數。

單元 6 - 數字型態會詳細介紹數字型態。

互動環境

底線在互動環境預設為之前運算的結果,例如

這是說在互動環境中,凡是計算結果都會暫時儲存在底線之中,利用底線可以取得上一行運算是的計算結果。

match-case 陳述

match-case 陳述的最後預設選項是用底線代替,例如

  
  
  
  
  
  
  
  
s = 2
match s:
    case 0:
        print(0)
    case 1:
        print(1)
    case _:
        print(-1)

以上由於變數 (variable) s 的值是 2 ,因此程式最後會印出預設選項 -1

迴圈

for 迴圈中,如果不需要運用到取得的元素,控制變數 (control variable) 可以用底線代替,例如

  
  
  
for _ in range(10):
    print("*", end="")
print()

以上 for 迴圈的目的印出星號,不需要迴圈中從 range(10) 取得的值,因此控制變數用底線代替。

忽略的回傳值

如果函數 (function) 回傳序對 (tuple) ,也就是在 return 後用逗號依序分隔多個數值,例如

  
  
  
def my_function():
    return 0, 0, 1, 1
_, b, _, _ = my_function()

上面 my_function() 會回傳四個數字,因此要用序對變數,或是四個以逗號分開的變數接收回傳值,此時用後者如果有回傳值是不需要的,就可以用底線代替。

單元 44 - 函數與 return 陳述會詳細介紹如何定義函數。

類別中內建的方法

定義類別時,內建的方法名稱前後都是用兩條底線圍起來,例如建構子 (constructor) __init__() 如下

  
  
def __init__(self):
    pass

因此自行定義的方法除非有需要,不然應該避免跟內建名稱採用類似的模式定義方法。

單元 54 - 類別會詳細介紹如何定義類別。

封裝

封裝是在屬性前加上連續兩條底線,如下屬性 (attribute) __c

  
  
def __init__(self):
    self.__c = 0

由於封裝也是用底線,因此命名屬性與命名其他識別字一樣,應該避免以底線開頭。

單元 61 - 封裝會詳細介紹封裝。

參考資料

上一頁 單元 9 - 型態標記
回 Python 簡易手冊 首頁
下一頁 單元 11 - 布林運算子
回 Python 教材首頁
回程式語言教材首頁