对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多重继承新算法C3介绍
Sep 28 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
Jul 17 Python
Python实现的单向循环链表功能示例
Nov 10 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
TensorFlow实现模型评估
Sep 07 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
Python使用matplotlib 画矩形的三种方式分析
Oct 31 Python
wxPython之wx.DC绘制形状
Nov 19 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
Jun 27 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
python 管理系统实现mysql交互的示例代码
Dec 06 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堆栈与列队的学习
2013/06/21 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
教大家制作简单的php日历
2015/11/17 PHP
JavaScript prototype对象的属性说明
2010/03/13 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
Python常用正则表达式符号浅析
2014/08/13 Python
Python使用Redis实现作业调度系统(超简单)
2016/03/22 Python
Python实现二叉树结构与进行二叉树遍历的方法详解
2016/05/24 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
2020/04/07 Python
机电一体化大学生求职信
2013/11/08 职场文书
大学运动会通讯稿
2014/01/28 职场文书
初中三好学生自我鉴定
2014/04/07 职场文书
大学新闻系自荐书
2014/05/31 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
Python WSGI 规范简介
2021/04/11 Python