对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中使用poplib模块收取邮件的教程
Apr 29 Python
python获取目录下所有文件的方法
Jun 01 Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 Python
Python制作刷网页流量工具
Apr 23 Python
Python OpenCV处理图像之图像直方图和反向投影
Jul 10 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
python解析json串与正则匹配对比方法
Dec 20 Python
Python编程flask使用页面模版的方法
Dec 28 Python
利用Python正则表达式过滤敏感词的方法
Jan 21 Python
Django中celery执行任务结果的保存方法
Jul 12 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 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
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
php实现评论回复删除功能
2017/05/23 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
详解JavaScript的变量
2019/04/04 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
python中文编码问题小结
2014/09/28 Python
python常用知识梳理(必看篇)
2017/03/23 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
企业演讲稿范文
2013/12/28 职场文书
我未来的职业规划范文
2014/01/11 职场文书
教师个人剖析材料
2014/02/05 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python