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实现支持目录FTP上传下载文件的方法
Jun 03 Python
Python制作数据导入导出工具
Jul 31 Python
简述Python中的进程、线程、协程
Mar 18 Python
python使用response.read()接收json数据的实例
Dec 19 Python
django 中QuerySet特性功能详解
Jul 25 Python
python飞机大战pygame游戏背景设计详解
Dec 17 Python
Python tkinter三种布局实例详解
Jan 06 Python
Keras自动下载的数据集/模型存放位置介绍
Jun 19 Python
python3中数组逆序输出方法
Dec 01 Python
pandas统计重复值次数的方法实现
Feb 20 Python
Python答题卡识别并给出分数的实现代码
Jun 22 Python
OpenCV 图像梯度的实现方法
Jul 25 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
1.PHP简介
2006/10/09 PHP
国外比较好的几个的Php开源建站平台小结
2010/04/22 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
基于php-fpm的配置详解
2013/06/03 PHP
PHP 验证登陆类分享
2015/03/13 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
js中更短的 Array 类型转换
2011/10/30 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
在Python中定义和使用抽象类的方法
2016/06/30 Python
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python 并发下载器实现方法示例
2019/11/22 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
Python内存映射文件读写方式
2020/04/24 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
运动会表扬稿大全
2014/01/16 职场文书
心理健康课教学反思
2014/02/13 职场文书
运动会入场词200字
2014/02/15 职场文书
正规欠条模板
2015/07/03 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js