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中用startswith()函数判断字符串开头的教程
Apr 07 Python
使用Python多线程爬虫爬取电影天堂资源
Sep 23 Python
pandas的object对象转时间对象的方法
Apr 11 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
Pycharm 字体大小调整设置的方法实现
Sep 27 Python
Django框架获取form表单数据方式总结
Apr 22 Python
Python如何测试stdout输出
Aug 10 Python
python 爬虫爬取京东ps4售卖情况
Dec 18 Python
pycharm 实现复制一行的快捷键
Jan 15 Python
python模块与C和C++动态库相互调用实现过程示例
Nov 02 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
Sony CFR 320 修复改造
2020/03/14 无线电
php4的session功能评述(一)
2006/10/09 PHP
php共享内存段示例分享
2014/01/20 PHP
php常用数学函数汇总
2014/11/21 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
PHP文件上传类实例详解
2016/04/08 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
2017/04/13 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
在漏洞利用Python代码真的很爽
2007/08/26 Python
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
python学习入门细节知识点
2018/03/29 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
文员岗位职责范本
2014/03/08 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
无房证明范本
2014/09/17 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python