对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使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 Python
python 连接sqlite及简单操作
Jun 30 Python
python3操作微信itchat实现发送图片
Feb 24 Python
利用Python实现在同一网络中的本地文件共享方法
Jun 04 Python
Python面向对象基础入门之设置对象属性
Dec 11 Python
centos7之Python3.74安装教程
Aug 15 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
python实现超市管理系统(后台管理)
Oct 25 Python
jenkins+python自动化测试持续集成教程
May 12 Python
Python学习之路安装pycharm的教程详解
Jun 17 Python
PyQt5的QWebEngineView使用示例
Oct 20 Python
pandas中DataFrame检测重复值的实现
May 26 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自动适应范围的分页代码
2008/08/05 PHP
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
全面了解javascript中的错误处理机制
2016/07/18 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
vuex页面刷新导致数据丢失的解决方案
2020/12/10 Vue.js
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
python写的一个squid访问日志分析的小程序
2014/09/17 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
Python3字符串学习教程
2015/08/20 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
人工神经网络算法知识点总结
2019/06/11 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
keras 权重保存和权重载入方式
2020/05/21 Python
咖啡店自主创业商业计划书
2014/01/22 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
Redis性能监控的实现
2021/07/09 Redis
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers