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代码解决RenderView窗口not found问题
Aug 28 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
Atom的python插件和常用插件说明
Jul 08 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
python实现定时发送qq消息
Jan 18 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
python 同时读取多个文件的例子
Jul 16 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
python Gabor滤波器讲解
Oct 26 Python
详解Selenium 元素定位和WebDriver常用方法
Dec 04 Python
Python中使用ipython的详细教程
Jun 22 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 中的str_replace 函数总结
2007/04/27 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
vue实现商城购物车功能
2017/11/27 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
python实现简单温度转换的方法
2015/03/13 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
2020/04/01 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
房地产销售经理岗位职责
2014/01/01 职场文书
开业庆典邀请函
2014/01/08 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
公司担保书范文
2014/05/21 职场文书
音乐教师求职信
2014/06/28 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
解析目标检测之IoU
2021/06/26 Python