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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值