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 isinstance判断对象类型
Sep 06 Python
Python tempfile模块学习笔记(临时文件)
May 25 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
Python json模块dumps、loads操作示例
Sep 06 Python
Window 64位下python3.6.2环境搭建图文教程
Sep 19 Python
Django框架实现的简单分页功能示例
Dec 04 Python
python实现合并两个排序的链表
Mar 03 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
TensorFlow使用Graph的基本操作的实现
Apr 22 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
python从Oracle读取数据生成图表
Oct 14 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
php自动注册登录验证机制实现代码
2011/12/20 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
javascript String 对象
2008/04/25 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
js实现上传图片预览方法
2016/10/25 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
你应该知道的python列表去重方法
2017/01/17 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
Python高斯消除矩阵
2019/01/02 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
python多线程分块读取文件
2019/08/29 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Python偏函数实现原理及应用
2020/11/20 Python
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
竞选学生会演讲稿
2014/04/25 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2015年网络管理员工作总结
2015/05/21 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers