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

发布时间 - 2026-01-11 00:32:09    点击率:

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如何获取运行函数  # python获取运行函数方法  # Python使用多进程运行含有任意个参数的函数  # Python中统计函数运行耗时的方法  # Python 代码在函数中运行得更快的原因解析  # 行号  # 将其  # 请在  # 可以通过  # 希望能  # 很简单  # 但也  # 谢谢大家  # peterguo  # vip  # py  # author  # qq  # import  # sys  # def  # get_func_name  # python  # class  # brush 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  香港服务器租用费用高吗?如何避免常见误区?  个人网站制作流程图片大全,个人网站如何注销?  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何在阿里云虚拟服务器快速搭建网站?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  QQ浏览器网页版登录入口 个人中心在线进入  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何在宝塔面板中创建新站点?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Laravel怎么在Blade中安全地输出原始HTML内容  如何用美橙互联一键搭建多站合一网站?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Java遍历集合的三种方式  实例解析Array和String方法  Laravel如何与Pusher实现实时通信?(WebSocket示例)  WEB开发之注册页面验证码倒计时代码的实现  Laravel如何使用Vite进行前端资源打包?(配置示例)  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  网站制作软件有哪些,制图软件有哪些?  javascript日期怎么处理_如何格式化输出  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何确保FTP站点访问权限与数据传输安全?  简单实现Android验证码  如何在万网主机上快速搭建网站?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  公司网站制作价格怎么算,公司办个官网需要多少钱?  phpredis提高消息队列的实时性方法(推荐)  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  如何在景安服务器上快速搭建个人网站?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Python面向对象测试方法_mock解析【教程】  智能起名网站制作软件有哪些,制作logo的软件?  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道