dump.py

来自「minimal python variant for small footpri」· Python 代码 · 共 64 行

PY
64
字号
# 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 + =
减小字号Ctrl + -
显示快捷键?