Python保留字(關鍵字)一覽表

2020-07-16 10:05:24
與 C、C++、Java、C# 等語言不同,Python 沒有定義常數的關鍵字,意即 Python 中沒有常數的概念。為了實現與其他語言中功能相近的常數,可以使用 Python 物件導向的方法編寫一個“常數”模組。

將以下程式碼儲存為 test-const.py:
import sys
class _CONSTANT:
    class ConstantError(TypeError) : pass
    def __setattr__(self, key, value):
        if key in self.__dict__.keys():
            raise(self.ConstantError, "常數重新賦值錯誤!")
        self.__dict__[key] = value
sys.modules[__name__] = _CONSTANT()
#使用以下方式為 CONSTANT 這個“常數”賦值和呼叫:
CONSTANT =_CONSTANT()
CONSTANT.TEST = 'test'
print(CONSTANT.TEST)
#嘗試使用以下方式為 CONSTANT 重新賦值:
CONSTANT.TEST = 'test111'
print(CONSTANT.TEST)
程式執行結果如下所示:

C:UsersAdministrator.spyder-py3Python test-const.py 
test
Traceback (most recent call last):
  File "test-const.py", line 35, in <module>
    CONSTANT.TEST = 'test111'
  File "test-const.py", line 27, in __setattr__
    raise(self.ConstantError, "常數重新賦值錯誤!")
TypeError: exceptions must derive from BaseException

可以看到,第一次為 CONSTANT.TEST 賦值後能夠成功執行,當嘗試為 CONSTANT.TEST 重新賦值時將會出現錯誤提示,這相當於起到了常數的作用。

保留字即其他語言中的關鍵字,是指在語言本身的編譯器中已經定義過的單詞,具有特定含義和用途,使用者不能再將這些單詞作為變數名或函數名、類名使用。Python 3.7.2 中的保留字主要有 False、None 等 35 個。
溫馨提示:Python 3.7.2 中的 35 個保留字
False、None、True、and、as、assert、async、await、break、class、continue、def、del、elif、else、except、finally、for、from、global、if、import、in、is、lambda、nonlocal、not、or、pass、raise、return、try、while、with、yield.
Python 2.X 中的 exec 和 print 等保留字在 3.X 中已經改為內建函數。 Python 3.7.2 中 35 個保留字的含義及作用如表 1 所示。

表 1:Python 3.7.2 中 35 個保留字的含義及作用
序號 保留字 說明
1 and 邏輯與操作,用於表示式運算
2 as 用於轉換資料型別
3 assert 用於判斷變數或條件表示式的結果
4 async 用於啟用非同步操作
5 await 用於非同步操作中等待協程返回
6 break 中斷迴圈語句的執行
7 class 定義類
8 continue 繼續執行下一次迴圈
9 def 定義函數或方法
10 del 刪除變數或序列的值
11 elif 條件語句,與 if、else 結合使用
12 else 條件語句,與 if、else 結合使用;也可用於異常或迴圈語句
13 except 包含捕獲異常後的處理程式碼塊,與 try、finally 結合使用
14 False 含義為“假”的邏輯值
15 finally 包含捕獲異常後的始終要呼叫的程式碼塊,與 try、except 結合使用
16 for 迴圈語句
17 from 用於匯入模組,與 import 結合使用
18 global 用於在函數或其他區域性作用域中使用全域性變數
19 if 條件語句,與 elif、else 結合使用
20 import 匯入模組,與 from 結合使用
21 in 判斷變數是否在序列中
22 is 判斷變數是否為某個類的範例
23 lambda 定義匿名函數
24 None 表示一個空物件或是一個特殊的空值
25 nonlocal 用於在函數或其他作用域中使用外層(非全域性)變數
26 not 邏輯非操作,用於表示式運算
27 or 邏輯或操作,用於表示式運算
28 pass 空的類、方法或函數的預留位置
29 raise 用於丟擲異常
30 return 從函數返回計算結果
31 True 含義為“真”的邏輯值
32 try 測試執行可能出現異常的程式碼,與 except, finally 結合使用
33 while 迴圈語句
34 with 簡化 Python 的語句
35 yield 從函數依次返回值

在 Python 環境下可以執行以下命令檢視當前版本的保留字:

>>>import keyword
>>>keyword.kwlist


程式執行結果如下:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']


若將保留字作為識別符號並賦值將會得到語法錯誤,如下所示。

>>>class="This is a class"
    File "<stdin>", line 1
        class="This is a class"
            ^
SyntaxError: invalid syntax