Почему будущий barry_as_FLUFL не работает в файле .py?Python

Программы на Python
Anonymous
Почему будущий barry_as_FLUFL не работает в файле .py?

Сообщение Anonymous »

Существует оператор будущего, который позволяет использовать оператор ромба вместо != для сравнения на равенство.
Вот демонстрация в REPL :

Код: Выделить всё

>>> from __future__ import barry_as_FLUFL
>>> print(1  2)
True
>>> 1 != 2
File "", line 1
1 != 2
^^
SyntaxError: with Barry as BDFL, use '' instead of '!='
Он также работает должным образом с eval, exec и компиляцией, например:

Код: Выделить всё

>>> import __future__
>>> exec(compile('print(1  2)', 'foo', 'single', __future__.CO_FUTURE_BARRY_AS_BDFL))
True
Однако это не работает при использовании в скрипте.

Код: Выделить всё

# script.py
from __future__ import barry_as_FLUFL
print(1  2)
Независимо от того, импортируете ли вы или запускаете файл, изменение синтаксиса не вступит в силу:

Код: Выделить всё

$ python3 script.py
File ".../script.py", line 3
print(1  2)
^^
SyntaxError: invalid syntax
Я осознаю, что эта функция — шутка, и ее функциональность могла быть проверена только в интерактивном интерпретаторе. Тем не менее, меня интересует техническая причина, почему, в отличие от других будущих операторов, он не работает в файле .py.
Почему будущее barry_as_FLUFL работать по сценарию?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -a-py-file

Вернуться в «Python»