python获取当前运行函数名称的方法实例代码

作者:lqh 时间:2023-03-06 15:34:22 

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:https://my.oschina.net/sanpeterguo/blog/204703

标签:python,运行函数
0
投稿

猜你喜欢

  • 如何让对方在线查看我的程序代码?

    2010-05-13 16:34:00
  • SQL SERVER 中构建执行动态SQL语句的方法

    2024-01-22 10:01:46
  • Python字符串hashlib加密模块使用案例

    2023-08-02 12:06:24
  • 如何用python 操作MongoDB数据库

    2024-01-27 16:53:10
  • MySQL常见错误提示及解决方法

    2008-02-23 10:08:00
  • MySQL中的多表联合查询功能操作

    2024-01-21 07:21:30
  • go语言interface接口继承多 态示例及定义 解析

    2023-10-14 02:49:27
  • Python内置函数—vars的具体使用方法

    2021-05-07 04:09:57
  • vue中的封装常用工具类

    2024-05-09 15:19:38
  • XML的简单读取与写入

    2008-09-04 10:35:00
  • python推导式的使用方法实例

    2021-03-13 09:38:25
  • MySQL延时复制库方法详解

    2024-01-26 14:21:51
  • Python中列表与元组的乘法操作示例

    2021-05-09 17:11:25
  • Golang库插件注册加载机制的问题

    2023-06-24 04:25:59
  • 正确认识MySQL对服务器端光标的限制

    2008-12-03 15:52:00
  • 微信小程序使用uni-app一键获取用户信息

    2024-05-05 09:07:09
  • nodejs 的 session 简单使用

    2024-05-11 09:51:19
  • Python统计文本词汇出现次数的实例代码

    2022-01-11 02:13:14
  • 零基础学习python偏函数语法的推导方法步骤

    2021-07-17 20:59:18
  • Python运算符重载用法实例

    2022-11-02 11:33:20
  • asp之家 网络编程 m.aspxhome.com