Python Glossary English

все Python 3operatorфункция

operator.methodcaller

вызов и доступ

Фабрика: возвращает функцию, вызывающую у объекта метод с фиксированным именем и аргументами.

Синтаксис

f = operator.methodcaller('method', *args)

Аргументы фиксируются в момент создания: methodcaller('split', ',') всегда будет делить по запятой. Удобна, когда метод нужно применить к каждому элементу: map(methodcaller('strip'), lines). Для метода без аргументов проще передать сам метод класса — map(str.strip, lines), — но он сработает лишь для одного типа, а methodcaller — для любого объекта с таким методом.

Примеры

import operator
g = operator.methodcaller('upper')
print(g('abc'))   # → ABC
print(operator.methodcaller('upper')('abc') == 'abc'.upper())   # → True
print(operator.methodcaller('replace', 'a', 'z')('banana'))   # → bznznz
print(list(map(operator.methodcaller('strip'), [' a ', ' b'])))   # → ['a', 'b']
print(operator.methodcaller('upper')(5))   # → AttributeError

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности