对Python 获取类的成员变量及临时变量的方法详解


Posted in Python onJanuary 22, 2019

利用Python反射机制,从代码块中静态获取参数:

co_argcount: 普通参数的总数,不包括参数和*参数。

co_names: 所有的参数名(包括参数和*参数)和局部变量名的元组。

co_varnames: 所有的局部变量名的元组。

co_filename: 源代码所在的文件名。

co_flags: 这是一个数值,每一个二进制位都包含了特定信息。较关注的是0b100(0x4)和0b1000(0x8),如果co_flags & 0b100 != 0,说明使用了*args参数;如果co_flags & 0b1000 != 0,说明使用了**kwargs参数。另外,如果co_flags & 0b100000(0x20) != 0,则说明这是一个生成器函数(generator function)。

class A:
  def __init__(self, a, b, c):
   self.x = a
   self.y = b
   self.z = c
   xx = 1
  def __str__(self):
   co = self.__init__.func_code
   co_names, co_varnames = 'co_names: ', 'co_varnames: '
   co_names += ','.join(co.co_names)
   co_varnames += ','.join(co.co_varnames)
   return ''.join((co_names, '\n', co_varnames))
 if '__main__' == __name__:
  obj = A(1, 2, 3)
  print str(obj)

结果:

co_names: x,y,z
co_varnames: self,a,b,c,xx

以上这篇对Python 获取类的成员变量及临时变量的方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python连接mysql并提交mysql事务示例
Mar 05 Python
python自动格式化json文件的方法
Mar 11 Python
python实现DES加密解密方法实例详解
Jun 30 Python
Python绘制KS曲线的实现方法
Aug 13 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 Python
python global关键字的用法详解
Sep 05 Python
Python闭包与装饰器原理及实例解析
Apr 30 Python
python操作链表的示例代码
Sep 27 Python
Python将list元素转存为CSV文件的实现
Nov 16 Python
Django 权限管理(permissions)与用户组(group)详解
Nov 30 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 24 Python
Python实现深度遍历和广度遍历的方法
Jan 22 #Python
Python遍历文件夹 处理json文件的方法
Jan 22 #Python
Python多线程原理与用法实例剖析
Jan 22 #Python
python解析含有重复key的json方法
Jan 22 #Python
Python设计模式之简单工厂模式实例详解
Jan 22 #Python
对python字典过滤条件的实例详解
Jan 22 #Python
python实现淘宝秒杀脚本
Jun 23 #Python
You might like
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
smarty中js的调用方法示例
2014/10/27 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
20个非常棒的Jquery实用工具 国外文章
2010/01/01 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
python书籍信息爬虫实例
2018/03/19 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
python tornado使用流生成图片的例子
2019/11/18 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
经典导游欢迎词大全
2014/01/16 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
nginx日志格式分析和修改
2022/04/28 Servers