> Запускаю idle.Молодец, юнга! Это как раз ошибка от рантайма.
В чем можно легко убедиться:
>>> import py_compile; py_compile.compile('a.py') # этот с print
'__pycache__/a.cpython-310.pyc'
>>> from imp import load_compiled;load_compiled('a', '__pycache__/a.cpython-310.pyc')
Warning (from warnings module):
File "<pyshell#4>", line 1
DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
from imp import load_compiled;load_compiled('a', '__pycache__/a.cpython-310.pyc')
File "/usr/local/lib/python3.10/imp.py", line 192, in load_compiled
module = _load(spec)
File "<frozen importlib._bootstrap>", line 719, in _load
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "a.py", line 3, in <module>
print(a + b)
TypeError: unsupported operand type(s) for +: 'int' and 'str'
> В вашем варианте (без print) интерпретатор просто отбрасывал выражение, т.к. его результат никак не использовался.
Неа:) Такая оптимизация - не для питона (даже с ключами -O и -OO), в чем легко убедиться с помощью dis. Ну или тупо повторить предыдущий пример без print.
Он же не знает, что + ведет себя как математическая функция. Вполне может быть, что
для некоторых типов она еще и лампочку вкручивает.
> В Emacs уже есть текстовый редактор?
В Emacs все есть.