Assert may not work as expected
2022-10-16
#python
2022-10-16
#python
前言
assert (断言) 是在编码过程中常用的手段,使用方法如下:
上面的表达式其实等价于
其中
__debug__
是内置变量,默认情况下为True
,这个时候我们传入一个user_roles = ['admin','guest']
:如果传入
['guest']
:如果我们有办法改变
__debug__
的值为False
,那么上面的函数将永远不会出现AssertionError
,尝试直接去修改这个参数显然直接修改是行不通的,但是可以在命令行下运行的时候设置 PYTHONOPTIMIZE 达到修改
__debug__
的目的所在在使用 assert 时候需要注意启动程序的命令,避免 assert 失效导致程序出现问题。