对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列表生成器的循环技巧分享
Mar 06 Python
Python判断文件和文件夹是否存在的方法
May 21 Python
python3新特性函数注释Function Annotations用法分析
Jul 28 Python
python操作mysql数据库
Mar 05 Python
pycharm新建一个python工程步骤
Jul 16 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
Python range、enumerate和zip函数用法详解
Sep 11 Python
使用python切片实现二维数组复制示例
Nov 26 Python
Python面向对象之私有属性和私有方法应用案例分析
Dec 31 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
Jul 13 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 Python
python unichr函数知识点总结
Dec 16 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/13 国漫
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
Yii2使用swiftmailer发送邮件的方法
2016/05/03 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
JS简单获取日期相差天数的方法
2017/04/24 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
python循环输出三角形图案的例子
2019/11/22 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
Tensorflow累加的实现案例
2020/02/05 Python
python实现飞行棋游戏
2020/02/05 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
皮肤科医师岗位职责
2013/12/04 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
2014年文秘工作总结
2014/11/25 职场文书
展览会邀请函
2015/02/02 职场文书
文化大革命观后感
2015/06/17 职场文书
学雷锋活动简报
2015/07/20 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技