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
溫馨提示:Python 3.7.2 中的 35 個保留字Python 2.X 中的 exec 和 print 等保留字在 3.X 中已經改為內建函數。 Python 3.7.2 中 35 個保留字的含義及作用如表 1 所示。
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.
序號 | 保留字 | 說明 |
---|---|---|
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 | 從函數依次返回值 |
>>>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