Утверждение должно проверить -
1. действительное состояние,
2. действительное заявление,
3. истинная логика;
исходного кода. Вместо того, чтобы проваливать весь проект, он дает сигнал, что что-то не подходит в вашем исходном файле.
В примере 1, поскольку переменная 'str' не равна nul. Таким образом, никакие утверждения или исключения не будут подняты.
Пример 1:
#!/usr/bin/python
str = 'hello Pyhton!'
strNull = 'string is Null'
if __debug__:
if not str: raise AssertionError(strNull)
print str
if __debug__:
print 'FileName '.ljust(30,'.'),(__name__)
print 'FilePath '.ljust(30,'.'),(__file__)
------------------------------------------------------
Output:
hello Pyhton!
FileName ..................... hello
FilePath ..................... C:/Python\hello.py
В примере 2 переменная 'str' имеет значение nul. Таким образом, мы спасаем пользователя от опережения в неисправной программе с помощью оператора assert .
Пример 2:
#!/usr/bin/python
str = ''
strNull = 'NULL String'
if __debug__:
if not str: raise AssertionError(strNull)
print str
if __debug__:
print 'FileName '.ljust(30,'.'),(__name__)
print 'FilePath '.ljust(30,'.'),(__file__)
------------------------------------------------------
Output:
AssertionError: NULL String
В тот момент, когда мы не хотим отлаживать и осознали проблему утверждения в исходном коде Отключить флаг оптимизации
python -O assertStatement.py
ничего не получится напечатать