Возможно, вы могли бы попробовать что-то вроде этого:
def call_attrs(obj, attrs_list, *args):
for attr in attrs_list:
if hasattr(obj, attr):
bound_method = getattr(obj, attr)
return bound_method(*args)
raise AttributeError
Вы бы назвали это так:
call_attrs(a, ['method1', 'method2', 'method3'])
Это попытается вызвать методы в том порядке, в котором они находятся в списке. Если вы хотите передать какие-либо аргументы, вы можете просто передать их после списка следующим образом:
call_attrs(a, ['method1', 'method2', 'method3'], arg1, arg2)