Mercurial > cpython-lru_cache-weakref
annotate Doc/library/symtable.rst @ 54294:dba767bc3155 legacy-trunk
remove mention of old ctypes version
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Sat, 23 May 2009 20:59:09 +0000 |
| parents | c8630f730907 |
| children | 127d623396ab |
| rev | line source |
|---|---|
| 48252 | 1 :mod:`symtable` --- Access to the compiler's symbol tables |
| 2 ========================================================== | |
|
48247
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
3 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
4 .. module:: symtable |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
5 :synopsis: Interface to the compiler's internal symbol tables. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
6 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
7 .. moduleauthor:: Jeremy Hylton <jeremy@alum.mit.edu> |
|
56791
8309ad6ae4c0
Merged revisions 68776-68777 via svnmerge from
Georg Brandl <georg@python.org>
parents:
48315
diff
changeset
|
8 .. sectionauthor:: Benjamin Peterson <benjamin@python.org> |
|
48247
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
9 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
10 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
11 Symbol tables are generated by the compiler from AST just before bytecode is |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
12 generated. The symbol table is responsible for calculating the scope of every |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
13 identifier in the code. :mod:`symtable` provides an interface to examine these |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
14 tables. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
15 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
16 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
17 Generating Symbol Tables |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
18 ------------------------ |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
19 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
20 .. function:: symtable(code, filename, compile_type) |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
21 |
| 48252 | 22 Return the toplevel :class:`SymbolTable` for the Python source *code*. |
|
48247
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
23 *filename* is the name of the file containing the code. *compile_type* is |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
24 like the *mode* argument to :func:`compile`. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
25 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
26 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
27 Examining Symbol Tables |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
28 ----------------------- |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
29 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
30 .. class:: SymbolTable |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
31 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
32 A namespace table for a block. The constructor is not public. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
33 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
34 .. method:: get_type() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
35 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
36 Return the type of the symbol table. Possible values are ``'class'``, |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
37 ``'module'``, and ``'function'``. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
38 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
39 .. method:: get_id() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
40 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
41 Return the table's identifier. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
42 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
43 .. method:: get_name() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
44 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
45 Return the table's name. This is the name of the class if the table is |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
46 for a class, the name of the function if the table is for a function, or |
|
48256
ff85653545f5
a few improvements
Benjamin Peterson <benjamin@python.org>
parents:
48252
diff
changeset
|
47 ``'top'`` if the table is global (:meth:`get_type` returns ``'module'``). |
|
48247
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
48 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
49 .. method:: get_lineno() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
50 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
51 Return the number of the first line in the block this table represents. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
52 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
53 .. method:: is_optimized() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
54 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
55 Return ``True`` if the locals in this table can be optimized. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
56 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
57 .. method:: is_nested() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
58 |
|
48256
ff85653545f5
a few improvements
Benjamin Peterson <benjamin@python.org>
parents:
48252
diff
changeset
|
59 Return ``True`` if the block is a nested class or function. |
|
48247
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
60 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
61 .. method:: has_children() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
62 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
63 Return ``True`` if the block has nested namespaces within it. These can |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
64 be obtained with :meth:`get_children`. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
65 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
66 .. method:: has_exec() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
67 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
68 Return ``True`` if the block uses ``exec``. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
69 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
70 .. method:: has_import_start() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
71 |
| 48252 | 72 Return ``True`` if the block uses a starred from-import. |
|
48247
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
73 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
74 .. method:: get_identifiers() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
75 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
76 Return a list of names of symbols in this table. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
77 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
78 .. method:: lookup(name) |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
79 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
80 Lookup *name* in the table and return a :class:`Symbol` instance. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
81 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
82 .. method:: get_symbols() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
83 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
84 Return a list of :class:`Symbol` instances for names in the table. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
85 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
86 .. method:: get_children() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
87 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
88 Return a list of the nested symbol tables. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
89 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
90 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
91 .. class:: Function |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
92 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
93 A namespace for a function or method. This class inherits |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
94 :class:`SymbolTable`. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
95 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
96 .. method:: get_parameters() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
97 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
98 Return a tuple containing names of parameters to this function. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
99 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
100 .. method:: get_locals() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
101 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
102 Return a tuple containing names of locals in this function. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
103 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
104 .. method:: get_globals() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
105 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
106 Return a tuple containing names of globals in this function. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
107 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
108 .. method:: get_frees() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
109 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
110 Return a tuple containing names of free variables in this function. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
111 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
112 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
113 .. class:: Class |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
114 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
115 A namespace of a class. This class inherits :class:`SymbolTable`. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
116 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
117 .. method:: get_methods() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
118 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
119 Return a tuple containing the names of methods declared in the class. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
120 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
121 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
122 .. class:: Symbol |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
123 |
| 48252 | 124 An entry in a :class:`SymbolTable` corresponding to an identifier in the |
|
48247
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
125 source. The constructor is not public. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
126 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
127 .. method:: get_name() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
128 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
129 Return the symbol's name. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
130 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
131 .. method:: is_referenced() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
132 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
133 Return ``True`` if the symbol is used in its block. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
134 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
135 .. method:: is_imported() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
136 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
137 Return ``True`` if the symbol is created from an import statement. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
138 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
139 .. method:: is_parameter() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
140 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
141 Return ``True`` if the symbol is a parameter. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
142 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
143 .. method:: is_global() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
144 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
145 Return ``True`` if the symbol is global. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
146 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
147 .. method:: is_local() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
148 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
149 Return ``True`` if the symbol is local to its block. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
150 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
151 .. method:: is_free() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
152 |
| 48252 | 153 Return ``True`` if the symbol is referenced in its block, but not assigned |
| 154 to. | |
|
48247
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
155 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
156 .. method:: is_assigned() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
157 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
158 Return ``True`` if the symbol is assigned to in its block. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
159 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
160 .. method:: is_namespace() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
161 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
162 Return ``True`` if name binding introduces new namespace. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
163 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
164 If the name is used as the target of a function or class statement, this |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
165 will be true. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
166 |
|
56805
c8630f730907
Merged revisions 70171,70183,70290,70292,70315,70438,70464 via svnmerge from
Georg Brandl <georg@python.org>
parents:
56791
diff
changeset
|
167 For example:: |
|
c8630f730907
Merged revisions 70171,70183,70290,70292,70315,70438,70464 via svnmerge from
Georg Brandl <georg@python.org>
parents:
56791
diff
changeset
|
168 |
|
c8630f730907
Merged revisions 70171,70183,70290,70292,70315,70438,70464 via svnmerge from
Georg Brandl <georg@python.org>
parents:
56791
diff
changeset
|
169 >>> table = symtable.symtable("def some_func(): pass", "string", "exec") |
|
c8630f730907
Merged revisions 70171,70183,70290,70292,70315,70438,70464 via svnmerge from
Georg Brandl <georg@python.org>
parents:
56791
diff
changeset
|
170 >>> table.lookup("some_func").is_namespace() |
|
c8630f730907
Merged revisions 70171,70183,70290,70292,70315,70438,70464 via svnmerge from
Georg Brandl <georg@python.org>
parents:
56791
diff
changeset
|
171 True |
|
c8630f730907
Merged revisions 70171,70183,70290,70292,70315,70438,70464 via svnmerge from
Georg Brandl <georg@python.org>
parents:
56791
diff
changeset
|
172 |
|
48247
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
173 Note that a single name can be bound to multiple objects. If the result |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
174 is ``True``, the name may also be bound to other objects, like an int or |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
175 list, that does not introduce a new namespace. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
176 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
177 .. method:: get_namespaces() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
178 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
179 Return a list of namespaces bound to this name. |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
180 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
181 .. method:: get_namespace() |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
182 |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
183 Return the namespace bound to this name. If more than one namespace is |
|
9fb10f3d0f87
add some documentation for symtable
Benjamin Peterson <benjamin@python.org>
parents:
diff
changeset
|
184 bound, a :exc:`ValueError` is raised. |
