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

yipeiwu_com6年前Python基础
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 <ENTER> TO RESUME...')
del x,y,o


简单用法:

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

cndebug()#

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

myobj={}

cndebug(myobj)

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

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

相关文章

PyQt5实现让QScrollArea支持鼠标拖动的操作方法

PyQt5实现让QScrollArea支持鼠标拖动的操作方法

如下所示: #!/usr/bin/evn python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets impo...

django多种支付、并发订单处理实例代码

django实现多种支付方式 ''' #思路 我们希望,通过插拔的方式来实现多方式登录,比如新增一种支付方式,那么只要在项目中新增一个py文件,导入里面的pay方法就可以了...

python调用staf自动化框架的方法

1、配置环境 支持python2和python3 On Linux, Solaris, or FreeBSD, add the /usr/local/staf/lib directory...

Python 中Django安装和使用教程详解

Python 中Django安装和使用教程详解

  一、安装     一般使用cmd 安装就可以   手动安装通过下载方式    django官方网站:https://www.djangoproject.com/    python官...

在RedHat系Linux上部署Python的Celery框架的教程

在RedHat系Linux上部署Python的Celery框架的教程

 Celery (芹菜)是基于Python开发的分布式任务队列。它支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度。 架构设计  Celery的架构由...