python获取当前运行函数名称的方法实例代码


Posted in Python onApril 06, 2017

python获取当前运行函数名称的方法实例代码

摘要: c/c++中获取函数所在源码名,函数名和行号的方法很简单 __FILE__,__FUNCTION__和__LINE__ python没有这种语法,但也可以通过某种方法得到,这里给出例子,使用异常信息得到【可能会损失性能】

直接贴代码[可参考python核心编程4.4]

#获取调用该函数所在(被调用)的函数名

#author:peterguo@vip.qq.com 
def get_func_name():
  import sys
  try:
    raise Exception
  except:
    exc_info = sys.exc_info()                             #返回 异常类型,异常,traceback对象
    traceObj = exc_info[2]                               #traceback对象
    frameObj = traceObj.tb_frame                         #获取frame对象,即本函数的frame信息
    #print frameObj.f_code.co_name,frameObj.f_lineno         #请在使用的时候将其注释
    Upframe = frameObj.f_back                           #获取该代码段的frame信息,即调用该函数的函数frame
    #print Upframe.f_code.co_name, Upframe.f_lineno          #请在使用的时候将其注释
    return (Upframe.f_code.co_name, Upframe.f_lineno)[0]      #获取名称
调用方法

获取文件名路径,函数名,行号

------------------------------------------------------------------------------

def getCurRunPosInfo():
  import sys
  try:
    raise Exception
  except:
    exc_info = sys.exc_info()    
    traceObj = exc_info[2]   
    frameObj = traceObj.tb_frame 
    #print frameObj.f_code.co_name,frameObj.f_lineno
    Upframe = frameObj.f_back            
    #print Upframe.f_code.co_name, Upframe.f_lineno 
    return (Upframe.f_code.co_filename, Upframe.f_code.co_name, Upframe.f_lineno)
#测试代码
def test1():
  print getCurRunPosInfo()

def test2():
  print get_func_name()
  
输出:
>>('demo.py', 'test1', 44)
>>test2

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
Python内存管理方式和垃圾回收算法解析
Nov 11 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
python实现输入数字的连续加减方法
Jun 22 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
Jun 03 Python
python图像处理模块Pillow的学习详解
Oct 09 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
使用python实现飞机大战游戏
Mar 23 Python
python实现感知机模型的示例
Sep 30 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
Oct 15 Python
python 写一个文件分发小程序
Dec 05 Python
Python中time与datetime模块使用方法详解
Mar 31 Python
python爬取w3shcool的JQuery课程并且保存到本地
Apr 06 #Python
使用Python对SQLite数据库操作
Apr 06 #Python
使用Python对MySQL数据操作
Apr 06 #Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
Apr 05 #Python
Python使用迭代器捕获Generator返回值的方法
Apr 05 #Python
由浅入深讲解python中的yield与generator
Apr 05 #Python
Python中shutil模块的学习笔记教程
Apr 04 #Python
You might like
php入门之连接mysql数据库的一个类
2012/04/21 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
浅谈在Vue.js中如何实现时间转换指令
2019/01/06 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
python读取和保存视频文件
2018/04/16 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
python简单实现AES加密和解密
2019/03/28 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
公司营业员的工作总结自我评价
2013/10/05 职场文书
项目经理岗位职责
2013/11/11 职场文书
工程管理专业个人求职信范文
2013/12/07 职场文书
最受欢迎的自我评价
2013/12/22 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
面试后的感谢信范文
2014/02/01 职场文书
四风对照检查材料范文
2014/09/27 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript