Python获取当前函数名称方法实例分享


Posted in Python onJanuary 18, 2018

本文实例主要是Python中获取当前运行函数的名称,具体如下。

python 具有强大的自省能力,在函数运行时,可以在函数内部获取到当前所在的函数名称,请看示例代码

#coding=utf-8 
import sys 
import inspect 
 
def my_name(): 
 print '1' ,sys._getframe().f_code.co_name 
 print '2' ,inspect.stack()[0][3] 
 
def get_current_function_name(): 
 print '5', sys._getframe().f_code.co_name 
 return inspect.stack()[1][3] 
class MyClass: 
 def function_one(self): 
  print '3',inspect.stack()[0][3] 
  print '4', sys._getframe().f_code.co_name 
  print "6 %s.%s invoked"%(self.__class__.__name__, get_current_function_name()) 
 
if __name__ == '__main__': 
 my_name() 
 myclass = MyClass() 
 myclass.function_one()

示例演示了两种获取当前所在函数名称的方法,一种是用sys内置模块,一种是使用inspect模块。运行结果如下:

1 my_name 
2 my_name 
3 function_one 
4 function_one 
5 get_current_function_name 
6 MyClass.function_one invoked

sys.getframe().f_code.co_name 方法永远获取当前所在的函数名称,inspect.stack()方法相对更灵活一些,在get_current_function_name函数中,sys获取的函数名称是get_cu
rrent_function_name,而inspect方法返回的结果是function_one。inspect.stack记录了当前的栈内信息,想进一步了解可以打印inspect.stack()信息。

我在function_one函数中调用了get_current_function_name,因此inspect.stack()返回的list中的第一个元组是有关get_current_function_name信息的,

第二个元组才是function_one的相关信息。

总结

以上就是本文关于Python获取当前函数名称方法实例分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python中__name__的使用实例
Apr 14 Python
Django框架中render_to_response()函数的使用方法
Jul 16 Python
利用python获取Ping结果示例代码
Jul 06 Python
Python3实现发送QQ邮件功能(附件)
Dec 23 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
Python正则表达式和re库知识点总结
Feb 11 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
Python类的继承super相关原理解析
Oct 22 Python
举例讲解Python装饰器
Dec 24 Python
Python之京东商品秒杀的实现示例
Jan 06 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 Python
Python AES加密实例解析
Jan 18 #Python
快速了解python leveldb
Jan 18 #Python
Python实现动态图解析、合成与倒放
Jan 18 #Python
Python基于matplotlib实现绘制三维图形功能示例
Jan 18 #Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 #Python
python中requests和https使用简单示例
Jan 18 #Python
Python使用matplotlib实现绘制自定义图形功能示例
Jan 18 #Python
You might like
在PHP中使用XML
2006/10/09 PHP
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
防止文件缓存的js代码
2013/01/10 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
python实现ftp客户端示例分享
2014/02/17 Python
Python编写检测数据库SA用户的方法
2014/07/11 Python
Python中基本的日期时间处理的学习教程
2015/10/16 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
单利模式及python实现方式详解
2018/03/20 Python
python保存文件方法小结
2018/07/27 Python
解决pycharm安装后代码区不能编辑的问题
2018/10/28 Python
python实现浪漫的烟花秀
2019/01/30 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
加拿大留学自荐信
2014/01/28 职场文书
教师演讲稿大全
2014/05/16 职场文书
模范教师事迹材料
2014/12/16 职场文书
护理工作心得体会
2016/01/22 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android