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实现问号表达式(?)的方法
Nov 27 Python
python实现的登陆Discuz!论坛通用代码分享
Jul 11 Python
零基础写python爬虫之爬虫的定义及URL构成
Nov 04 Python
Python获取运行目录与当前脚本目录的方法
Jun 01 Python
Python循环语句之break与continue的用法
Oct 14 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
Python中表示字符串的三种方法
Sep 06 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 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函数(简单整理)
2010/04/30 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
php文件缓存类汇总
2014/11/21 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
JavaScript数组和对象的复制
2017/03/21 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
移动端H5页面返回并刷新页面(BFcache)的方法
2018/11/06 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
Python isinstance判断对象类型
2008/09/06 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
pyspark 随机森林的实现
2020/04/24 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
总经理岗位职责范本
2014/02/02 职场文书
2014全国两会心得体会
2014/03/17 职场文书
企业年会主持词
2014/03/27 职场文书
超市开店计划书
2014/04/26 职场文书
文明家庭事迹材料
2014/12/20 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技