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中pass语句用法实例分析
Apr 30 Python
python实现用户登录系统
May 21 Python
Python中字典的setdefault()方法教程
Feb 07 Python
Python SqlAlchemy动态添加数据表字段实例解析
Feb 07 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
Python 统计字数的思路详解
May 08 Python
python将txt文件读入为np.array的方法
Oct 30 Python
Python input函数使用实例解析
Nov 22 Python
python自动点赞功能的实现思路
Feb 26 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 Python
python推导式的使用方法实例
Feb 28 Python
详解Python+OpenCV绘制灰度直方图
Mar 22 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
一个程序下载的管理程序(一)
2006/10/09 PHP
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
MySql中正则表达式的使用方法描述
2008/07/30 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
jQuery链使用指南
2015/01/20 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
JavaScript实现三级联动菜单效果
2017/08/16 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
使用Python & Flask 实现RESTful Web API的实例
2017/09/19 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
如何让python的运行速度得到提升
2020/07/08 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
城市规划应届毕业生自荐信
2014/07/04 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书
新手初学Java List 接口
2021/07/07 Java/Android