непонятный?
шта
импорты с футуров логичны если у нас старая версия питона и надо новый функционал
Если ты про свои выкрутасы со строками — то дважды нет. 1. Всё наоборот, с аннотациями как раз не нужно делать строки. 2. В 3.12 это поведение ещё не приняли. (Сроков пока нет)
а как предлагаешь тогда написать а | x | None?
Брать реальные классы и писать.
а если мы пишем их строками, и используем в компании if TYPE_CHECKING: from src.db import Database
1 — а, вот как. просто с импортом перестал и на строку ругаться 'Foo' | None
Я такое с не-runtime_checkable протоколами делаю
То непонятно, какую проблему вы решаете. Ты тут какую-то странную малообоснованную фигню про производительность писал. Теоретически оно могло бы как-то быть актуально в редких случаях, в живую — не думаю.
циклические ссылки пытаемся решить
Ну, в этом случае без всяких строк будет работать. Но наличие циклических импортов в целом подозрительно.
а как это без строк будет работать?
Так и будут. import typing if typing.TYPE_CHECKING: import expensive_mod def a_func(arg: expensive_mod.SomeClass) -> None: a_var: expensive_mod.SomeClass = arg См. сюда: https://peps.python.org/pep-0563/
Обсуждают сегодня