Вы можете добиться чего-то подобного, используя декораторы:
def on_result(f):
def decorated(self,other,*args,**kwargs):
result = getattr(self,other)(*args,**kwargs)
return f(result)
return decorated
Использование:
class someClass(object):
def someMethod(self,x,y):
#doSomething
result = [1,2,3,x,y] # example
return result
@on_result
def subMethod(self):
#doSomething with the result of someMethod
print self # example
Foo = someClass()
Foo.subMethod("someMethod",4,5)
Выход:
[1, 2, 3, 4, 5]
Как видите, первый аргумент - это имя метода, который должен быть объединен в цепочку, а остальные будут переданы ему независимо от его сигнатуры.
РЕДАКТИРОВАТЬ: если подумать, это довольно бессмысленно, поскольку вы всегда можете использовать
Foo.submethod(Foo.someMethod(4,5))...
Может быть, я не понял, чего вы пытаетесь достичь. Нужно ли подключать подметод только к специфическому методу? Или, может быть, это синтетическая форма
a.b().c()
это важно для тебя? (в этом случае см. ответ Кодзиро)