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开发的小球完全弹性碰撞游戏代码
Oct 15 Python
python测试驱动开发实例
Oct 08 Python
Python教程之全局变量用法
Jun 27 Python
python实现自动发送邮件发送多人、群发、多附件的示例
Jan 23 Python
对Python 数组的切片操作详解
Jul 02 Python
python中csv文件的若干读写方法小结
Jul 04 Python
python迭代dict的key和value的方法
Jul 06 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
python 实现人和电脑猜拳的示例代码
Mar 02 Python
python try...finally...的实现方法
Nov 25 Python
Python 多线程之threading 模块的使用
Apr 14 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中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
JS的数组迭代方法
2015/02/05 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
node.js的事件机制
2017/02/08 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
[59:00]OG vs TNC 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
TensorFlow损失函数专题详解
2018/04/26 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
Julep官网:美容产品和指甲油
2017/02/25 全球购物
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
法国在线药房:1001Pharmacies
2021/03/07 全球购物
药品质量检测应届生求职信
2013/11/14 职场文书
法务专员岗位职责
2014/01/02 职场文书
环境建设实施方案
2014/03/14 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
国防教育标语
2014/10/08 职场文书
庆元旦主持词
2015/07/06 职场文书
电台广播稿范文
2015/08/19 职场文书