打印出python 当前全局变量和入口参数的所有属性

695次阅读  |  发布于5年以前

def cndebug(obj=False):
"""
Author : Nemon
Update : 2009.7.1
TO use : cndebug(obj) or cndebug() or MyObject.debug=cndebug
License: GPL
"""
print('='80)
print('='
30 + ' GLOBAL VARIABLES ' +'='30)
print('='
80)
g=globals()
for x,y in g.iteritems():
if x[:1]!='_':
print ( x + ' := '+ str(type(y)))
print ( y)
print ( '')
if obj:
print('='80)
print('='
30 + ' LOCAL VARIABLES ' +'='30)
print('='
80)
for o in dir(obj):

if o[:1]!='_':

print (o + ' := ' + str(type(getattr(obj,o))))
print ( getattr(obj,o))
print ( '')
print('='*80)
o=raw_input('PRESS TO RESUME...')
del x,y,o

简单用法:

1)打印出python 当前全局变量

cndebug()#

2)打印出当前全局变量和myobj的所有属性

myobj={}

cndebug(myobj)

扩展用法――当作类方法,打印实例的成员

class MyObj():
... debug=cndebug
...
myObj1=MyObj()
myObj1.debug()

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8