home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / p / python / pyhtmldoc / h / how_it_wor < prev    next >
Text File  |  1996-11-14  |  3KB  |  67 lines

  1. <TITLE>How It Works -- Python library reference</TITLE>
  2. Prev: <A HREF="../d/debugger_commands" TYPE="Prev">Debugger Commands</A>  
  3. Up: <A HREF="../t/the_python_debugger" TYPE="Up">The Python Debugger</A>  
  4. Top: <A HREF="../t/top" TYPE="Top">Top</A>  
  5. <H1>8.2. How It Works</H1>
  6. Some changes were made to the interpreter:
  7. <P>
  8. <UL>
  9. <LI>•  sys.settrace(func) sets the global trace function
  10. <LI>•  there can also a local trace function (see later)
  11. </UL>
  12. Trace functions have three arguments: (<VAR>frame</VAR>, <VAR>event</VAR>, <VAR>arg</VAR>)
  13. <P>
  14. <DL>
  15. <DT><B><VAR>frame</VAR></B><DD>is the current stack frame
  16. <P>
  17. <DT><B><VAR>event</VAR></B><DD>is a string: <CODE>'call'</CODE>, <CODE>'line'</CODE>, <CODE>'return'</CODE>
  18. or <CODE>'exception'</CODE>
  19. <P>
  20. <DT><B><VAR>arg</VAR></B><DD>is dependent on the event type
  21. <P>
  22. </DL>
  23. A trace function should return a new trace function or None.
  24. Class methods are accepted (and most useful!) as trace methods.
  25. <P>
  26. The events have the following meaning:
  27. <P>
  28. <DL>
  29. <DT><B><CODE>'call'</CODE></B><DD>A function is called (or some other code block entered).  The global
  30. trace function is called; arg is the argument list to the function;
  31. the return value specifies the local trace function.
  32. <P>
  33. <DT><B><CODE>'line'</CODE></B><DD>The interpreter is about to execute a new line of code (sometimes
  34. multiple line events on one line exist).  The local trace function is
  35. called; arg in None; the return value specifies the new local trace
  36. function.
  37. <P>
  38. <DT><B><CODE>'return'</CODE></B><DD>A function (or other code block) is about to return.  The local trace
  39. function is called; arg is the value that will be returned.  The trace
  40. function's return value is ignored.
  41. <P>
  42. <DT><B><CODE>'exception'</CODE></B><DD>An exception has occurred.  The local trace function is called; arg is
  43. a triple (exception, value, traceback); the return value specifies the
  44. new local trace function
  45. <P>
  46. </DL>
  47. Note that as an exception is propagated down the chain of callers, an
  48. <CODE>'exception'</CODE> event is generated at each level.
  49. <P>
  50. Stack frame objects have the following read-only attributes:
  51. <P>
  52. <DL>
  53. <DT><B>f_code</B><DD>the code object being executed
  54. <DT><B>f_lineno</B><DD>the current line number (<CODE>-1</CODE> for <CODE>'call'</CODE> events)
  55. <DT><B>f_back</B><DD>the stack frame of the caller, or None
  56. <DT><B>f_locals</B><DD>dictionary containing local name bindings
  57. <DT><B>f_globals</B><DD>dictionary containing global name bindings
  58. </DL>
  59. Code objects have the following read-only attributes:
  60. <P>
  61. <DL>
  62. <DT><B>co_code</B><DD>the code string
  63. <DT><B>co_names</B><DD>the list of names used by the code
  64. <DT><B>co_consts</B><DD>the list of (literal) constants used by the code
  65. <DT><B>co_filename</B><DD>the filename from which the code was compiled
  66. </DL>
  67.