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 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
python中urlparse模块介绍与使用示例
Nov 19 Python
Python方法的延迟加载的示例代码
Dec 18 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
python实现俄罗斯方块
Jun 26 Python
python Flask 装饰器顺序问题解决
Aug 08 Python
python时间序列按频率生成日期的方法
May 14 Python
pycharm显示远程图片的实现
Nov 04 Python
python对Excel的读取的示例代码
Feb 14 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 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
虫族 ZERG 概述
2020/03/14 星际争霸
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
用穿越火线快速入门php面向对象
2012/02/22 PHP
PHP多例模式介绍
2013/06/24 PHP
PHP实现的限制IP投票程序IP来源分析
2016/05/04 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
php实现映射操作实例详解
2019/10/02 PHP
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
python的dict,set,list,tuple应用详解
2014/07/24 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
python3中的md5加密实例
2018/05/29 Python
python异常处理和日志处理方式
2019/12/24 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
家长给孩子的表扬信
2014/01/17 职场文书
教师一帮一活动总结
2014/07/08 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书