Le Thu, 11 Jun 2009 10:46:26 -0400, Kent Johnson <ken...@tds.net> s'exprima ainsi:
> On Wed, Jun 10, 2009 at 9:43 PM, Robert Lummis<robert.lum...@gmail.com> > wrote: > > I want to write a function that I can use for debugging purposes that > > prints the values of whatever list of object references it is given as > > arguments, without knowing in advance how many object references it > > will be called with or what they might be. For example, the call: > > show(a,b,c) would output the values of the arguments like this: > > > > a = 3 > > b = 'john' > > c = 'Monday' > > > > while show (x) would output (for example): > > > > x = 3.14 > > Here is a pretty clean solution. It passes names rather than values, > then looks the values up in the caller's stack frame. Written for > Python 2.x but should work for 3.x if you change the prints. > > In [1]: import sys > In [11]: def show(names): > ....: frame = sys._getframe(1) > ....: for name in names.split(): > ....: if name in frame.f_locals: > ....: print name, '=', frame.f_locals[name] > ....: else: > ....: print name, 'not found' > [...] > > Kent Waow, great! Denis ------ la vita e estrany _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor