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写的一个squid访问日志分析的小程序
Sep 17 Python
python sort、sorted高级排序技巧
Nov 21 Python
详解python中的json的基本使用方法
Dec 21 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
Jul 24 Python
python多进程中的内存复制(实例讲解)
Jan 05 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
在Python中过滤Windows文件名中的非法字符方法
Jun 10 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
如何使用python传入不确定个数参数
Feb 18 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 Python
python中yield的用法详解
Jan 13 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常用代码大全(新手入门必备)
2010/06/29 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
php商品对比功能代码分享
2015/09/24 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
JS加载iFrame出现空白问题的解决办法
2016/05/13 Javascript
浅谈JS继承_借用构造函数 & 组合式继承
2016/08/16 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
transform python环境快速配置方法
2018/09/27 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
班级活动策划书
2014/02/06 职场文书
保险内勤岗位职责
2014/04/05 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
学校法制宣传月活动总结
2014/07/03 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
社区工作者个人总结
2015/02/28 职场文书
2015年营业员工作总结
2015/04/23 职场文书
七年级生物教学反思
2016/02/20 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
Python List remove()实例用法详解
2021/08/02 Python
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript
python数字图像处理实现图像的形变与缩放
2022/06/28 Python
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers