Строка документации теряется при установке параметров типа в универсальном шаблоне.
Минимальный пример:
< pre class="lang-py Prettyprint-override">
Код: Выделить всё
from typing import TypeVar, Generic
T = TypeVar("T")
class Test(Generic[T]):
"""My docstring"""
assert Test.__doc__ == "My docstring"
Код: Выделить всё
assert Test[int].__doc__ == "My docstring"
Я ожидаю, что строка документации останется прежней. В конце концов, это все еще «тот же» класс.
Есть ли что-то, чего я не понимаю в том, как система типизации Python обеспечивает такое намеренное поведение?
Справочная информация
Используя параметризованные типы в FastAPI, я теряю описание (поступающее из строки документации) при создании спецификаций OpenAPI.
Я могу исправить это с декоратором, но в моем случае это приводит к большему количеству проблем с созданием модели Pydantic. Но это не главное. Я хотел бы понять, почему это вообще происходит, независимо от невстроенных инструментов.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ed-generic
Мобильная версия