与 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)
程序执行结果如下所示:
可以看到,第一次为 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 | 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 环境下可以执行以下命令查看当前版本的保留字:
程序执行结果如下:
若将保留字作为标识符并赋值将会得到语法错误,如下所示。