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 相关文章推荐
用smtplib和email封装python发送邮件模块类分享
Feb 17 Python
Python中使用Tkinter模块创建GUI程序实例
Jan 14 Python
Python中使用dom模块生成XML文件示例
Apr 05 Python
用Python实现服务器中只重载被修改的进程的方法
Apr 30 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
Pandas 数据处理,数据清洗详解
Jul 10 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
Apr 09 Python
浅谈Django中view对数据库的调用方法
Jul 18 Python
Django Celery异步任务队列的实现
Jul 24 Python
Python @property使用方法解析
Sep 17 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
Feb 17 Python
Python实现的北京积分落户数据分析示例
Mar 27 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
优化使用mysql存储session的php代码
2008/01/10 PHP
php绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
很好用的js日历算法详细代码
2013/03/07 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
浅谈vue的iview列表table render函数设置DOM属性值的方法
2017/09/30 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
vue debug 二种方法
2018/09/16 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
Python的设计模式编程入门指南
2015/04/02 Python
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
django模板语法学习之include示例详解
2017/12/17 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
Python对象转换为json的方法步骤
2019/04/25 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
Python Selenium截图功能实现代码
2020/04/26 Python
python如何操作mysql
2020/08/17 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
大学生军训自我评价分享
2013/11/09 职场文书
销售员个人求职的自我评价
2014/02/10 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
MySQL注入基础练习
2021/05/30 MySQL