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实现服务器中只重载被修改的进程的方法
Apr 30 Python
理解Python中的绝对路径和相对路径
Aug 30 Python
Python+matplotlib+numpy绘制精美的条形统计图
Jan 02 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
Python中%是什么意思?python中百分号如何使用?
Mar 20 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
解决pycharm的Python console不能调试当前程序的问题
Jan 20 Python
对Python3使运行暂停的方法详解
Feb 18 Python
django写用户登录判定并跳转制定页面的实例
Aug 21 Python
python rsa实现数据加密和解密、签名加密和验签功能
Sep 18 Python
Django用户登录与注册系统的实现示例
Jun 03 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 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 金额数字转换成英文
2010/05/06 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php实现根据IP地址获取其所在省市的方法
2015/04/30 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
2016/06/06 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python的keyword模块用法实例分析
2015/06/30 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
Python几种常见算法汇总
2020/06/02 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
python FTP编程基础入门
2021/02/27 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
父亲生日宴会答谢词
2014/01/10 职场文书
电子信息工程自荐信
2014/05/26 职场文书
校庆团日活动总结
2014/08/28 职场文书
如何在Python项目中引入日志
2021/05/31 Python