![](../../img/interpret.jpg)
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 |
> |
參考資料
- https://docs.python.org/3/tutorial/controlflow.html#pass-statements
- https://docs.python.org/3/reference/simple_stmts.html#the-pass-statement
- https://docs.python.org/3/reference/datamodel.html#ellipsis
![](../../img/pydoing.gif)