对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 20 Python
浅谈python中的占位符
Nov 09 Python
python 显示数组全部元素的方法
Apr 19 Python
如何利用python查找电脑文件
Apr 27 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
编写多线程Python服务器 最适合基础
Sep 14 Python
对pandas的行列名更改与数据选择详解
Nov 12 Python
Flask框架中request、请求钩子、上下文用法分析
Jul 23 Python
Python tkinter模版代码实例
Feb 05 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
Python之字典添加元素的几种方法
Sep 30 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
下载文件的点击数回填
2006/10/09 PHP
PHP 编程请选择正确的文本编辑软件
2006/12/21 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
2007/05/30 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
点击弹出层效果&弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
python集合用法实例分析
2015/05/30 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
python决策树之CART分类回归树详解
2017/12/20 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
Python元组知识点总结
2019/02/18 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
Python 3.8 新功能全解
2019/07/25 Python
pytorch 模型可视化的例子
2019/08/17 Python
python颜色随机生成器的实例代码
2020/01/10 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
盛大二次面试题
2016/11/18 面试题
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
导游词幽默开场白
2019/06/26 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python