对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的面向对象编程方式学习笔记
Jul 12 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
python中异常捕获方法详解
Mar 03 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
Django利用cookie保存用户登录信息的简单实现方法
May 27 Python
Python跳出多重循环的方法示例
Jul 03 Python
wxPython+Matplotlib绘制折线图表
Nov 19 Python
python ftplib模块使用代码实例
Dec 31 Python
基于python图书馆管理系统设计实例详解
Aug 05 Python
PyCharm 解决找不到新打开项目的窗口问题
Jan 15 Python
Python中zipfile压缩包模块的使用
May 14 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实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
php封装的验证码类分享
2017/02/26 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
浅谈关于axios和session的一些事
2017/07/13 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
初步讲解Python中的元组概念
2015/05/21 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
Python 实现国产SM3加密算法的示例代码
2020/09/21 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
html5教你做炫酷的碎片式图片切换 (canvas)
2017/07/28 HTML / CSS
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
小学节能减排倡议书
2014/05/15 职场文书
经营理念标语
2014/06/21 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android