#python #object #methods #dynamic
#python #объект #методы #динамический
Вопрос:
Какой более предпочтительный способ динамического вызова метода некоторого объекта:
method = getattr(object, name)
method(*args, **kw)
Или
import operator
method = operator.methodcaller(name)
method(object, *args, **kw)
Комментарии:
1.
getattr
это то, что я бы предложил, никакого дополнительного импорта, и я еще не видел, чтобы operator использовался для этой цели на практике.2. Я тоже всегда использую
getattr
для этой цели.3. Я не могу говорить за других, но я изо всех сил пытаюсь придумать хотя бы наполовину приличный аргумент в любом случае…
4. Я бы использовал getattr, но я проверю, можно ли вызвать метод, прежде чем вызывать его.
5. @spicavigo если вы будете использовать
operator.methodcaller
, нет необходимости проверять, является ли метод вызываемым