def ᅠ(): print("Hello world!") ᅠ()
Скопируйте этот код, и он заработает в любом редакторе с установленным интерпретатором Python. Спорим, вы будете долго думать в чём здесь подвох и как это работает.
Решение
Здесь нет никакой магии и интерпретатор тоже не сломан, просто в названии функции используется особый символ юникода: U+FFA0, для нас он выглядит как пробел, но интерпретатор читает его как обычную букву.
Комментарии (20)

Alexandroppolus
09.10.2026 14:27Это ведь баг в интерпретаторе?

AndreyProgramMaker Автор
09.10.2026 14:27Нет, это не баг, в версии Python 3 разработчики официально добавили поддержку юникода

Alexandroppolus
09.10.2026 14:27Ну я вот просто не понимаю, зачем пробельный символ считать буквой

AndreyProgramMaker Автор
09.10.2026 14:27Суть в том что это не пробельный символ, а разделитель корейского юникода, который помогает правильно собирать иероглифы

aeder
09.10.2026 14:27Большего идиотизма, чем разрешить в названиях функций и переменных произвольный юникод, и представить себе трудно.

alcotel
09.10.2026 14:27Точняк. Мало было невидимых отступов, так ещё и невидимые функции подвезли.

Wesha
09.10.2026 14:27Это Вы ещё спецсимвол разворота справа налево не распробовали!
Скрытая картинка


Rsa97
09.10.2026 14:27Увы, не только питон этим страдает. Остаётся только использовать линтер со своими правилами, ограничивающими набор символов в идентификаторах.
Причём, проблема то была и до юникода, например с символами одинакового начертания в кириллице и латинице.

MrBotikkk
09.10.2026 14:27Бородатый мем, головоломка или демонстрация возможности Unicode в Python 3. Если такое использовать в реальных проектах - другие разрабы сделают очень больно(ломает линтеры,отладку) Это грубое нарушение принципов читаемости кода (PEP 8).
python3 << 'EOF' def ᅠ(): print("Hello world!") ᅠ() EOFpython3 << 'EOF' def ᅠ(): print("Hello world!") # Посмотрим все имена в текущей области видимости print("dir() =", dir()) # Посмотрим настоящее имя функции print("Настоящее имя функции =", ᅠ.__name__) EOF
iWowik
У меня в редакторе notepad не работает никак вааще!
AndreyProgramMaker Автор
Здравствуйте, спасибо за комментарий, я проверял, в VS code и Python IDLE работает безупречно.
Rsa97
Угу. У меня такая же нога и не болит. А я в свой VSCode скопировал и не работает. Правда, у меня и питона то нет. Да, и VSCode ещё и показал, что тут не так.
AndreyProgramMaker Автор
В питоне как раз и дело), для запуска Python кода нужно установить Python, изначально VS code не знает Python. На скриншоте видно, что редактор подчеркнул не ошибку, а спецсимвол, который выглядит как пробел, но читается интерпретатором, как буква
Rsa97
А как же “он заработает в любом редакторе”. Тут у вас ни слова про питон.
AndreyProgramMaker Автор
Спасибо за внимательность, уже исправил во избежание двусмысленности.