#!/usr/local/bin/python2 def join(funcs, main=None): def f(*args, **kwargs): if main is None: return [func(*args, **kwargs) for func in funcs] return [func(*args, **kwargs) for func in funcs][main] return f func = join((int, str, bool), main=1) for i in xrange(500000): r = func(5) print r