打印出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()

相关文章

python去重,一个由dict组成的list的去重示例

背景:有一个list,里面的每一个元素都是dict,根据某一个key进行去重,在这里,key代表question #!/usr/bin/env python # -*- coding...

Python通过for循环理解迭代器和生成器实例详解

本文实例讲述了Python通过for循环理解迭代器和生成器。分享给大家供大家参考,具体如下: 迭代器 可迭代对象 通过 for…in… 循环依次拿到数据进行使用的过程称为遍历,也叫迭代...

浅谈numpy生成数组的零值问题

今天在用numpy写sinc函数时偶然发现在x=0时函数居然能取到1,觉得很不可思议,按理来说在x=0时函数无意义,研究了一下,发现竟然时numpy在生成数组时自动用一个很小的数代替了0...

Python使用正则实现计算字符串算式

在Python里面其实有一种特别方便实用的直接计算字符串算式的方法 那就是eval() s = '1+2*(6/2-9+3*(3*9-9))' print(eval(s)) #97....

django创建最简单HTML页面跳转方法

假设已经通过: django-admin startproject +项目名称 python manage.py +项目应用 创建好一个项目以及内部的项目应用后,并且会运行django看...