Возможно ли задать переменным такое значение, чтобы код сумел выполниться?
Только что увидел мем, в котором был написан следующий код:
print(hello world)
Возможно ли задать данным переменным такие значения, чтобы данный код выполнился? Условно, как-то заменить hello на знак "-" и получить выражение "-world". Или интерпретатор питона в принципе не признает такой возможности и запрещает, чтобы две пользовательские переменные стояли подряд без разделителей?
Шаблон для такой программы:
hello = expression1
world = expression2
print(hello world)
Выражение внутри print не должно меняться. Нельзя туда писать + или что-то вроде этого.
В C++ данное извращение можно сделать, например, с помощью #define:
#define hello -
int world = 5;
cout << hello world << endl; //-5
Ответы (1 шт):
Нет. Ошибка синтаксиса возникает на этапе разбора выражения, до запуска программы на выполнение (в том числе, до того, как в переменные будет что-то записано). Только если вы модифицируете интерпретатор или обработаете программу отдельным препроцессором. Либо если вместо пробела вставить какой-то непечатаемый символ, который интерпретатор расценит как алфавитно-цифровой.