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 正则表达式 概述及常用字符
May 04 Python
Python datetime时间格式化去掉前导0
Jul 31 Python
python创建进程fork用法
Jun 04 Python
用Python shell简化开发
Aug 08 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
numpy linalg模块的具体使用方法
May 26 Python
python实现微信自动回复及批量添加好友功能
Jul 03 Python
django drf框架中的user验证以及JWT拓展的介绍
Aug 12 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
Sep 25 Python
Python3 中sorted() 函数的用法
Mar 24 Python
Django多数据库配置及逆向生成model教程
Mar 28 Python
使用opencv-python如何打开USB或者笔记本前置摄像头
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
php中目录,文件操作详谈
2007/03/19 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
jQuery 动态酷效果实现总结
2009/12/27 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
构建Python包的五个简单准则简介
2015/06/15 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
Python装饰器用法实例总结
2018/02/07 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
python绘制立方体的方法
2018/07/02 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
奥地利网上书店:Weltbild
2017/07/14 全球购物
Brother加拿大官网:打印机、贴标机、缝纫机
2019/10/09 全球购物
办公室前台岗位职责范本
2013/12/10 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
仰望星空观后感
2015/06/10 职场文书
小学生安全教育主题班会
2015/08/12 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
Python加密与解密模块hashlib与hmac
2022/06/05 Python