Типизация Python: копирование `**kwargs` из одной функции в другую ⇐ Python
Типизация Python: копирование `**kwargs` из одной функции в другую
Это распространенный шаблон в функциях расширения или переноса Python: для передачи всех аргументов ключевых слов в расширенную функцию используется **kwargs.
т.е. возьми
класс A: def bar(self, *, a: int, b: str, c: float) -> str: верните f"{a}_{b}_{c}" класс Б(А): def bar(self, **kwargs): return f"NEW_{super().bar(**kwargs)}" def base_function(*, a: int, b: str, c: float) -> str: верните f"{a}_{b}_{c}" расширение def(**kwargs) -> str: верните f"NEW_{base_function(**kwargs)}" Теперь вызов extension(not_existing="a") или B().bar(not_existing="a") приведет к TypeError, который может быть обнаружен средствами проверки статического типа.
Как я могу аннотировать свое расширение или B.bar, чтобы обнаружить эту проблему перед запуском кода?
Эта аннотация также будет полезна для IDE, поскольку она даст мне правильные предложения для extension или B.bar.
Это распространенный шаблон в функциях расширения или переноса Python: для передачи всех аргументов ключевых слов в расширенную функцию используется **kwargs.
т.е. возьми
класс A: def bar(self, *, a: int, b: str, c: float) -> str: верните f"{a}_{b}_{c}" класс Б(А): def bar(self, **kwargs): return f"NEW_{super().bar(**kwargs)}" def base_function(*, a: int, b: str, c: float) -> str: верните f"{a}_{b}_{c}" расширение def(**kwargs) -> str: верните f"NEW_{base_function(**kwargs)}" Теперь вызов extension(not_existing="a") или B().bar(not_existing="a") приведет к TypeError, который может быть обнаружен средствами проверки статического типа.
Как я могу аннотировать свое расширение или B.bar, чтобы обнаружить эту проблему перед запуском кода?
Эта аннотация также будет полезна для IDE, поскольку она даст мне правильные предложения для extension или B.bar.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Типизация Python: принимать kwargs только с методами некоторых классов
Anonymous » » в форуме Python - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Типизация Python: принимать kwargs только с методами некоторых классов
Anonymous » » в форуме Python - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Python Openpyxl: копирование и вставка из одной книги Excel в другую – Содержание
Anonymous » » в форуме Python - 0 Ответы
- 46 Просмотры
-
Последнее сообщение Anonymous
-