"""import inspect >>>x=2 >>>fmt("{0} {x} {y}", 1, y=3) '1 2 3' """ def fmt(s, *args, **kwargs): c_frame = inspect.getouterframes(inspect.currentframe(), 1)[1][0] c_args, c_varargs, c_varkw, c_locals = inspect.getargvalues(c_frame) d = dict(c_locals) d.update(globals()) if kwargs: d.update(kwargs) return s.format(*args, **d)