Предпочтительный способ динамического вызова метода некоторого объекта

#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 , нет необходимости проверять, является ли метод вызываемым