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中使用platform模块获取系统信息的用法教程
Jul 08 Python
python实现二维码扫码自动登录淘宝
Dec 27 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
Jul 24 Python
Python线程同步的实现代码
Oct 03 Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 Python
使用python的pandas为你的股票绘制趋势图
Jun 26 Python
linux环境下Django的安装配置详解
Jul 22 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
Aug 07 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
Python3查找列表中重复元素的个数的3种方法详解
Feb 13 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
pycharm 如何取消连按两下shift出现的全局搜索
Jan 15 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项目的方法
2006/10/09 PHP
PHP连接access数据库
2008/03/27 PHP
php删除指定目录的方法
2015/04/03 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
Python3 模块、包调用&路径详解
2017/10/25 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
python绘制立方体的方法
2018/07/02 Python
Python向excel中写入数据的方法
2019/05/05 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
canvas绘制树形结构可视图形的实现
2020/04/03 HTML / CSS
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
网络工程专业毕业生推荐信
2013/10/28 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
老乡会致辞
2015/07/28 职场文书