Включение / отключение пользовательских функций отладки в Python - PullRequest
0 голосов
/ 19 октября 2019

Если я определю свой собственный модуль отладки с функциями, которые должны выполняться только при разработке, есть ли способ полностью отключить эти функции, когда я буду готов выпустить финальную версию?

Я надеялся тамБыл ли умный способ полностью пропустить среду при вызове функции во время преобразования байтового кода? Я искал это, но, возможно, использовал неправильные входные данные для поиска.

Я разрабатываю надстройку для Blender, поэтому я не верю, что могу контролировать компиляцию или преобразование.

1 Ответ

1 голос
/ 19 октября 2019

Да, Python имеет флаг -O, что означает:

Удалить операторы assert и любой код, зависящий от значения __debug__

Так что в основномесли вы пишете свой код отладки с помощью операторов assert или проверяете значение __debug__ перед запуском функций отладки, вы можете использовать -O для включения производственного режима:

if __debug__:
    run_debug_function()

Вы также можете включить оптимизацию, задав для переменной среды PYTHONOPTIMIZE непустую строку, например, export PYTHONOPTIMIZE=1 в вашей оболочке.

Для получения дополнительной информации см. Документация командной строки Python

...