Это будет getattr
:
>>> getattr(A(), 'print')()
hiiiiii
(Обратите внимание, что вам все равно нужно вызвать возвращаемое значение getattr
; вы можете определить оболочку для этого для you:
def MagicalMethod(obj, name, *args, **kwargs):
return getattr(obj, name)(*args, **kwargs)
)
operator.methodcaller
обеспечивает несколько иной вид косвенного обращения.
>>> from operator import methodcaller
>>> f = methodcaller('print')
>>> f(A())
hiiiiii