[Python-Dev] Traceback style

Ka-Ping Yee ping@lfw.org
Tue, 2 May 2000 02:47:34 -0700 (PDT)


This was also going to go out after i posted the
display/displaytb patch. But anyway, let's see what
you all think.
I propose the following stylistic changes to traceback
printing:
 1. If there is no function name for a given level
 in the traceback, just omit the ", in ?" at the
 end of the line.
 2. If a given level of the traceback is in a method,
 instead of just printing the method name, print
 the class and the method name.
 3. Instead of beginning each line with:
 
 File "foo.py", line 5
 print the line first and drop the quotes:
 Line 5 of foo.py
 In the common interactive case that the file
 is a typed-in string, the current printout is
 
 File "<stdin>", line 1
 
 and the following is easier to read in my opinion:
 Line 1 of <stdin>
Here is an example:
 >>> class Spam:
 ... def eggs(self):
 ... return self.ham
 ... 
 >>> s = Spam()
 >>> s.eggs()
 Traceback (innermost last):
 File "<stdin>", line 1, in ?
 File "<stdin>", line 3, in eggs
 AttributeError: ham
With the suggested changes, this would print as
 Traceback (innermost last):
 Line 1 of <stdin>
 Line 3 of <stdin>, in Spam.eggs
 AttributeError: ham
-- ?!ng
"In the sciences, we are now uniquely privileged to sit side by side
with the giants on whose shoulders we stand."
 -- Gerald Holton

AltStyle によって変換されたページ (->オリジナル) /