Можете ли вы поймать import / name и другие ошибки в python, используя инструмент (linting) или шаг компиляции?
Другой вариант - убедиться, что все возможные пути кода проверены(Это не всегда выполнимо, особенно для больших баз существующего кода и по другим причинам)
Вот несколько примеров.
- Отсутствует импорт - пойман Пилинтом, хотя как
syntax error
вместо import error
.
def test():
print("Time now is ..", datetime.datetime())
Вывод Пилинта:
E0602: Undefined variable 'datetime' (undefined-variable)
Импортировать подарок , но используется неверный метод.Это передает и pylint и py_compile.
from datetime import datetime
def test():
print("Time now is ..", datetime.today2())
Редактировать: добавить еще одну опцию.
Выполнение import *
показывает некоторые ошибки, но не ошибки в выражениях, которыенаходятся внутри функций.
Сообщается об этой ошибке
from datetime import datetime
print("today2", datetime.today2())
Ошибка:
Python 3.7.0 (default, Aug 22 2018, 15:22:56)
>>> from test import *
...
print("today2", datetime.today2())
AttributeError: type object 'datetime.datetime' has no attribute 'today2'
>>>
Это не.
from datetime import datetime
def test():
print("Time now is ..", datetime.today2())