Python 簡易手冊

單元 49 - pass 陳述與省略符號 ...

關鍵字 (keyword) pass 跟省略符號 ... 的功能類似,前者是什麼都不做的陳述 (statement) ,後者的意義在於此處省略程式碼,先看到 pass 的例子

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 什麼事都不做的函數
def do_something():
    pass

# 呼叫函數
do_something()

# 檔名: pass_demo.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 3 月

這裡 do_somehting() 函數 (function) 裡頭只用了 pass ,因此什麼事情都不會做,執行的話會直接跳到下一行。

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

那為什麼要有關鍵字 pass 呢?因為有時候需要定義函數、類別 (class) 或方法 (method) ,但是需要在作用域有相關名稱,還不急著實作內容,或是留給繼承 (inherit) 的子類別 (subclass) 去實作,這時候就可以用關鍵字 pass ,讓名稱存在,但是不具有任何作用。

單元 54 - 類別會介紹如何定義類別,單元 55 - 實體屬性與方法會介紹如何定義實體方法,單元 62 - 繼承會介紹繼承的觀念。

繼續看到省略符號的例子

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 使用省略符號的函數
def do_something():
    ...

# 呼叫函數
do_something()

# 檔名: pass_demo2.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 3 月

此例在 do_somehting() 函數使用省略符號,沒有其他內容,那執行這個程式一樣會直接跳到下一行。

基本上,關鍵字 pass 跟省略符號的作用是一樣的,但是就語意上的差別, pass 適合用在不需要定義其他內容的情況,省略符號適合出現在還沒有完整實作,例如某個功能還沒寫完,這時候在程式碼用省略符號加上註解,就閱讀上比較能清楚找到還沒完成的部分。

另外需要注意, pass 直接是陳述,省略符號是物件 (object) ,以下例子印出省略符號的型態識別字 (identifier) 與內建型態名稱

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 印出省略符號的型態
print(type(...))
# 印出省略符號
print(...)

# 檔名: pass_demo3.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 3 月

執行結果如下

> python pass_demo3.py
<class 'ellipsis'>
Ellipsis
>

參考資料

上一頁 單元 48 - 裝飾子
回 Python 簡易手冊 首頁
下一頁 單元 50 - 產生器
回 Python 教材首頁
回程式語言教材首頁