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中的异常处理相关语句基础学习笔记
Jul 11 Python
Python实现Linux的find命令实例分享
Jun 04 Python
Python 自动化表单提交实例代码
Jun 08 Python
python 实现判断ip连通性的方法总结
Apr 22 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
Jan 17 Python
Django 创建/删除用户的示例代码
Jul 24 Python
详细介绍Python进度条tqdm的使用
Jul 31 Python
Python下利用BeautifulSoup解析HTML的实现
Jan 17 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
python安装cx_Oracle和wxPython的方法
Sep 14 Python
python基于机器学习预测股票交易信号
May 25 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 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
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP中的日期及时间
2006/11/23 PHP
ezSQL PHP数据库操作类库
2010/05/16 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
使用php批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
Python实现可自定义大小的截屏功能
2018/01/20 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
技校毕业生的自我评价
2013/12/27 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
Python下opencv库的安装过程及问题汇总
2021/06/11 Python
java设计模式--原型模式详解
2021/07/21 Java/Android
Python 匹配文本并在其上一行追加文本
2022/05/11 Python