对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的函数的一些高阶特性
Apr 27 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
Python脚本实现虾米网签到功能
Apr 12 Python
巧用python和libnmapd,提取Nmap扫描结果
Aug 23 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
使用python实现语音文件的特征提取方法
Jan 09 Python
python设定并获取socket超时时间的方法
Jan 12 Python
python多线程使用方法实例详解
Dec 30 Python
python add_argument()用法解析
Jan 29 Python
python3爬虫中异步协程的用法
Jul 10 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 Python
python爬取youtube视频的示例代码
Mar 03 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 XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
php5.3 注意事项说明
2013/07/01 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
PHP中的session安全吗?
2016/01/22 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
浅析Python中的join()方法的使用
2015/05/19 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
Python新手学习标准库模块命名
2020/05/29 Python
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
高中毕业自我鉴定范文
2013/10/02 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
禁烟标语大全
2014/06/11 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
2015年机关党建工作总结
2015/05/22 职场文书