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