对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 相关文章推荐
python3使用tkinter实现ui界面简单实例
Jan 10 Python
Python使用chardet判断字符编码
May 09 Python
老生常谈python之鸭子类和多态
Jun 13 Python
Python使用sorted排序的方法小结
Jul 28 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 Python
python实现集中式的病毒扫描功能详解
Jul 09 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
python文件和文件夹复制函数
Feb 07 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
Apr 16 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
浅谈Python类的单继承相关知识
May 12 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中的字符串函数
2006/10/09 PHP
PHP4中实现动态代理
2006/10/09 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
PHP扩展开发入门教程
2015/02/26 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
Python如何实现远程方法调用
2020/08/07 Python
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
初中语文教师研修日志
2015/11/13 职场文书
golang如何去除多余空白字符(含制表符)
2021/04/25 Golang
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
go类型转换及与C的类型转换方式
2021/05/05 Golang
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
Django Paginator分页器的使用示例
2021/06/23 Python