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 14 Python
Python之读取TXT文件的方法小结
Apr 27 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 Python
django框架F&Q 聚合与分组操作示例
Dec 12 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
Python实现汇率转换操作
May 03 Python
Python项目跨域问题解决方案
Jun 22 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 Python
PyQt实现计数器的方法示例
Jan 18 Python
virtualenv隔离Python环境的问题解析
Jun 21 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
php学习之简单计算器实现代码
2011/06/09 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
php如何调用webservice应用介绍
2012/11/24 PHP
PHP中Closure类的使用方法及详解
2015/10/09 PHP
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
在一个页面重复使用一个js函数的方法详解
2016/12/26 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
VueJS事件处理器v-on的使用方法
2017/09/27 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
Python中循环引用(import)失败的解决方法
2018/04/22 Python
python实现简单名片管理系统
2018/11/30 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
Python如何调用JS文件中的函数
2019/08/16 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
公司节能减排方案
2014/05/16 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
如何做好工作总结!
2019/04/10 职场文书