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发送Email方法实例
Aug 21 Python
Python深入学习之对象的属性
Aug 31 Python
python处理xml文件的方法小结
May 02 Python
使用python为mysql实现restful接口
Jan 05 Python
详谈python3中用for循环删除列表中元素的坑
Apr 19 Python
python+splinter实现12306网站刷票并自动购票流程
Sep 25 Python
Python根据当前日期取去年同星期日期
Apr 14 Python
python实现飞机大战游戏
Oct 26 Python
关于Python字符串显示u...的解决方式
Mar 06 Python
python 线程的五个状态
Sep 22 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 Python
Python Django项目和应用的创建详解
Nov 27 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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
PHP类的特性实例分析
2016/09/28 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
node.js通过axios实现网络请求的方法
2018/03/05 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
[59:00]OG vs TNC 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python实现扩展内置类型的方法分析
2017/10/16 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
公司晚会主持词
2014/03/22 职场文书
学校评语大全
2014/05/06 职场文书
赞助商致辞
2015/07/30 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
搭建Yolov5服务器
2022/04/30 Servers
正则表达式基础与常用验证表达式
2022/06/16 Javascript
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle