В документации трубы в полярах говорится:
DataFrame.pipe(
function: Callable[Concatenate[DataFrame, P], T],
*args: P.args,
**kwargs: P.kwargs,
) → T
args и kwargs переходят к вызываемому объекту, который принимает аргумент функции
Мне нужна помощь в чтении части Callable[Concatenate[DataFrame, P], T],
.
Грубо говоря, мы можем распаковать синтаксис Callable[Concatenate[DataFrame, P], T]
следующим образом.
Concatenate[DataFrame, P]
) относится к списку аргументов вызываемого объекта, а второй элемент (T
) относится к его возвращаемому типу.pl.DataFrame.pipe
выше, function
принимает в качестве первого параметра фрейм данных и, более того, некоторые другие параметры (аннотированные с использованием объекта typing.ParamSpec
P
), которые затем пересылаются в pl.DataFrame.pipe
(обратите внимание на P.args
и P.kwargs
в подписи).T
используется для указания (неизвестного) типа возвращаемого значения вызываемого function
. Затем он используется для указания (в подписи pipe
), что pl.DataFrame.pipe
будет иметь точно такой же тип возвращаемого значения T
.Более подробное описание тонкостей ввода вызываемых объектов см. в разделе «Аннотирование вызываемых объектов» в документации по типизации.