Вы можете практически использовать настоящий препроцессор Си.Если вы переименуете свой файл в конец .c
, вы можете сделать это: gcc -w -E input/file.py.c -o output/file.py
.
Основная проблема, кажется, с комментариями.Препроцессор будет жаловаться на то, что строки комментариев Python являются недопустимыми директивами препроцессора.Вы можете исправить это, используя комментарии C ++ (// comment
).
Или лучше было бы написать свой собственный простой препроцессор.Если вам нужна только функция #define
, вы просто говорите о поиске и замене файла.
Другое решение будет выглядеть примерно так:
def nothing(*args):
pass
def print_debug(msg):
print msg
if not DEBUG:
print_debug = nothing
Таким образом, операторы print ничего не делают, если вы не в режиме отладки.