Python 3.11+operatorфункция
operator.call
вызов и доступ
Вызывает объект с аргументами: call(f, *args, **kwargs) == f(*args, **kwargs) (Python 3.11+).
Синтаксис
operator.call(f, *args, **kwargs)
Позволяет вызвать набор функций одной строкой: list(map(operator.call, callbacks)) выполнит каждую без аргументов. С аргументами удобна вместе с itertools.starmap. Появилась в Python 3.11; на более ранних версиях то же даёт лямбда lambda f, *a: f(*a). Порядок важен: первым идёт сам вызываемый объект.
Примеры
import operator
print(operator.call(abs, -5)) # → 5
print(operator.call(abs, -5) == abs(-5)) # → True
print(operator.call(round, 3.14159, ndigits=2)) # → 3.14
print([operator.call(f) for f in (list, dict, tuple)]) # → [[], {}, ()]
print(operator.call(5)) # → TypeError
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности