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发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
May 25 Python
python清除字符串里非数字字符的方法
Jul 02 Python
详解Python中映射类型(字典)操作符的概念和使用
Aug 19 Python
详解python单元测试框架unittest
Jul 02 Python
详解Django中间件执行顺序
Jul 16 Python
python并发编程多进程之守护进程原理解析
Aug 20 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
Python实现数字的格式化输出
Aug 01 Python
Python map及filter函数使用方法解析
Aug 06 Python
QT5 Designer 打不开的问题及解决方法
Aug 20 Python
Python编程编写完善的命令行工具
Sep 15 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将向Java靠拢
2006/10/09 PHP
在PHP中利用XML技术构造远程服务(下)
2006/10/09 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
PHP文件与目录操作示例
2016/12/24 PHP
css配合jquery美化 select
2013/11/29 Javascript
jQuery代码性能优化的10种方法
2016/06/21 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
如何提高数据访问速度
2016/12/26 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
python记录程序运行时间的三种方法
2017/07/14 Python
python的变量与赋值详细分析
2017/11/08 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
python 带时区的日期格式化操作
2020/10/23 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
爱心捐助倡议书
2014/05/19 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
现役军人家属慰问信
2015/03/24 职场文书
爱的教育读书笔记
2015/06/26 职场文书
Python 内置函数速查表一览
2021/06/02 Python
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
2021/08/30 Java/Android
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技