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 相关文章推荐
ssh批量登录并执行命令的python实现代码
May 25 Python
Python3.x中自定义比较函数
Apr 24 Python
批量获取及验证HTTP代理的Python脚本
Apr 23 Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
Python使用sorted对字典的key或value排序
Nov 15 Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
在python image 中安装中文字体的实现方法
Aug 22 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
python线程信号量semaphore使用解析
Nov 30 Python
Python字典实现伪切片功能
Oct 28 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用身份证号获取星座和生肖的方法
2013/11/07 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
Docker 如何布置PHP开发环境
2016/06/21 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
cssQuery()的下载与使用方法
2007/01/12 Javascript
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
python制作websocket服务器实例分享
2016/11/20 Python
python简单实现操作Mysql数据库
2018/01/29 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
Python中的类与类型示例详解
2019/07/10 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
高中数学教学反思
2014/01/30 职场文书
吨的认识教学反思
2014/04/27 职场文书
保护野生动物倡议书
2014/05/16 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
SQLServer2019 数据库的基本使用之图形化界面操作的实现
2021/04/08 SQL Server