Встречается на собеседованиях • сегодня

Что такое Concatenate в модуле typing

Concatenate из модуля typing используется для аннотации типов в перегруженных функциях, где нужно объединить типы параметров. Особенно полезен в декораторах или функциях высшего порядка, где требуется сохранить информацию о типах исходных аргументов.

Пример с декоратором:

python
from typing import TypeVar, Callable, Concatenate, ParamSpec

T = TypeVar('T')
P = ParamSpec('P')

def add_logging(f: Callable[P, T]) -> Callable[Concatenate[str, P], T]:
def wrapper(msg: str, *args: P.args, **kwargs: P.kwargs) -> T:
print(f"Log: {msg}")
return f(*args, **kwargs)
return wrapper

@add_logging
def greet(name: str) -> None:
print(f"Hello, {name}!")

greet("Debug", "Alice") # Log: Debug\nHello, Alice!

text

Здесь `Concatenate[str, P]` указывает, что новая функция принимает строку (`msg`) перед оригинальными аргументами. Работает только с `ParamSpec` и требует Python 3.10+.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы