TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #5010 582
Как исправить вызов NamedTuple в Python 3.15

В Python 3.15 больше не поддерживается создание NamedTuple через именованные аргументы полей. В версиях 3.13 и 3.14 такой код выдаёт предупреждение об устаревании. Этот синтаксис никогда не был документирован и работал лишь потому, что старая реализация принимала произвольные именованные аргументы. «Явное лучше неявного» здесь стало требованием интерпретатора.

Исправить код можно двумя способами: объявить класс, наследующий NamedTuple, или передать в функциональную форму список пар «имя, тип». Классовый вариант читается проще и оставляет место для методов и строк документации.

Ruff 0.16 автоматически переводит обе формы в классовую по правилу UP014: достаточно запустить ruff check --fix. Для старых версий правило нужно включить отдельно. Примеры обоих исправлений есть в разборе Адама Джонсона.
More from @zen_of_python
  1. Sep 24, 2026Как читать многострочный ввод в Python REPL несколько раз Вызов open(0).read() читает стан…
  2. Sep 24, 2026Как запустить урезанный Python в браузерной песочнице Monty от Pydantic исполняет небольшо…
  3. Sep 23, 2026Как __getitem__ превращает объект Python в итерируемый Для цикла for объекту не всегда нуж…
  4. Sep 23, 2026Что меняет re.prefixmatch() в Python 3.15 re.match() проверяет совпадение только в начале…
  5. Sep 23, 2026Pyodide разрешил публиковать WASM-колёса прямо в PyPI В Pyodide 314.0 появилась прямая пуб…
  6. Sep 22, 2026Как применять структурное сопоставление с образцом к деревьям в Python Структурное сопоста…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →