📄 dump.py
字号:
# Module 'dump'## Print python code that reconstructs a variable.# This only works in certain cases.## It works fine for:# - ints and floats (except NaNs and other weird things)# - strings# - compounds and lists, provided it works for all their elements# - imported modules, provided their name is the module name## It works for top-level dictionaries but not for dictionaries# contained in other objects (could be made to work with some hassle# though).## It does not work for functions (all sorts), classes, class objects,# windows, files etc.## Finally, objects referenced by more than one name or contained in more# than one other object lose their sharing property (this is bad for# strings used as exception identifiers, for instance).# Dump a whole symbol table#def dumpsymtab(dict): for key in dict.keys(): dumpvar(key, dict[key])# Dump a single variable#def dumpvar(name, x): import sys t = type(x) if t == type({}): print name, '= {}' for key in x.keys(): item = x[key] if not printable(item): print '#', print name, '[', `key`, '] =', `item` elif t in (type(''), type(0), type(0.0), type([]), type(())): if not printable(x): print '#', print name, '=', `x` elif t == type(sys): print 'import', name, '#', x else: print '#', name, '=', x# check if a value is printable in a way that can be read back with input()#def printable(x): t = type(x) if t in (type(''), type(0), type(0.0)): return 1 if t in (type([]), type(())): for item in x: if not printable(item): return 0 return 1 if x == {}: return 1 return 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -