首页 > 编程笔记 > Python笔记

Python保留字(关键字)一览表

与 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:\Users\Administrator\.spyder-py3\Python 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

所有教程

优秀文章