все 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Сообщить о неточности