<html>
<body>
At 12:33 PM 4/7/2008, Kent Johnson wrote:<br>
<blockquote type=cite class=cite cite="">In [13]: import dis<br>
In [15]: def foo():<br>
&nbsp;&nbsp;&nbsp; ....:&nbsp;&nbsp;&nbsp;&nbsp; a = 10<br>
In [16]: dis.dis(foo)<br>
&nbsp;&nbsp;
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0
LOAD_CONST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1 (10)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
3
STORE_FAST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0 (a)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
6
LOAD_CONST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0 (None)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
9 RETURN_VALUE<br><br>
The STORE_FAST instruction is storing the (reference to) the value 10 at
<br>
offset 0 in the local storage section of the stack
frame.</blockquote><br>
I looked up &quot;offset&quot; in Wikipedia:<br><br>
====================================================<br>
Offset (computer science)<br><br>
This article describes the computer science term. <br><br>
In computer science, an offset within an array or other data structure
object is an integer indicating the distance (displacement) from the
beginning of the object up until a given element or point, presumably
within the same object. The concept of a distance is valid only if all
elements of the object are the same size (typically given in bytes or
words).<br><br>
In computer engineering and low-level programming (such as assembly
language), an offset usually denotes the number of address locations
added to a base address in order to get to a specific absolute address.
In this meaning of offset, only the basic address unit, usually the 8-bit
byte, is used to specify the offset's size. In this context an offset is
sometimes called a relative address.<br><br>
For example, given an array of characters A, containing abcdef, one can
say that the element containing the letter 'c' has an offset of 2 from
the start of A.<br><br>
Retrieved from
&quot;<a href="http://en.wikipedia.org/wiki/Offset_(computer_science)" eudora="autourl">
http://en.wikipedia.org/wiki/Offset_%28computer_science%29</a>&quot;<br>
===========================================================<br><br>
This may be pushing it with you, but I found the dis.dis() thing
fascinating. Here's a bit more complex function.<br><br>
&nbsp;<tt>def f(x):<br>
&nbsp;&nbsp;&nbsp;&nbsp; if x%2:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
&quot;odd&quot;<br>
&nbsp;&nbsp;&nbsp;&nbsp; else:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
&quot;even&quot;<br><br>
</tt>Could you give a blow-by-blow on the dis.dis()?<br><br>
=======================================<br>
<tt>In [21]: import dis<br>
&nbsp;&nbsp; ....:<br>
Out[21]: &lt;module 'dis' from 'E:\Python25\lib\dis.pyc'&gt;<br><br>
In [22]: def f(x):<br>
&nbsp;&nbsp; ....:&nbsp;&nbsp;&nbsp;&nbsp; if x%2:<br>
&nbsp;&nbsp; ....:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
&quot;odd&quot;<br>
&nbsp;&nbsp; ....:&nbsp;&nbsp;&nbsp;&nbsp; else:<br>
&nbsp;&nbsp; ....:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
&quot;even&quot;<br>
&nbsp;&nbsp; ....:<br>
&nbsp;&nbsp; ....:<br><br>
In [23]: dis.dis(f)<br>
&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0
LOAD_FAST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0 (x)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
3
LOAD_CONST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1 (2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
6 BINARY_MODULO<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
7
JUMP_IF_FALSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
8 (to 18)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
10 POP_TOP<br><br>
&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11
LOAD_CONST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2 ('odd')<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
14 RETURN_VALUE<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
15
JUMP_FORWARD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5 (to 23)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&nbsp;&nbsp; 18
POP_TOP<br><br>
&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19
LOAD_CONST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
3 ('even')<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
22 RETURN_VALUE<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &gt;&gt;&nbsp;&nbsp; 23
LOAD_CONST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0 (None)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
26 RETURN_VALUE<br>
</tt>=========================================<br><br>
Thanks,<br><br>
Dick Moores<br><br>
<br>
<x-sigsep><p></x-sigsep>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
================================<br>
UliPad &lt;&lt;The Python Editor&gt;&gt;:
<a href="http://code.google.com/p/ulipad/" eudora="autourl">
http://code.google.com/p/ulipad/</a></body>
</html>