diff --git a/Lib/symtable.py b/Lib/symtable.py index 3133633affc..6401d51831b 100644 --- a/Lib/symtable.py +++ b/Lib/symtable.py @@ -8,7 +8,8 @@ from _symtable import USE, DEF_GLOBAL, DEF_LOCAL, DEF_PARAM, \ import weakref -__all__ = ["symtable", "SymbolTable", "newSymbolTable"] +__all__ = ["symtable", "SymbolTable", "newSymbolTable", "Class", + "Function", "Symbol"] def symtable(code, filename, compile_type): raw = _symtable.symtable(code, filename, compile_type) @@ -117,6 +118,10 @@ class SymbolTable: for st in self._table.children if st.name == name] + def get_children(self): + return [newSymbolTable(st, self._filename) + for st in self._table.children] + class Function(SymbolTable): # Default values for instance variables @@ -236,19 +241,6 @@ class Symbol: raise ValueError, "name is bound to multiple namespaces" return self.__namespaces[0] -if __debug__: - class Foo: - version = 1 - - class Foo: - version = 2 - - class Foo: - version = 3 - - def execfunc(x): - exec x in y - if __name__ == "__main__": import os, sys src = open(sys.argv[0]).read()