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 PyQt5标准对话框用法示例
Aug 23 Python
python读文件保存到字典,修改字典并写入新文件的实例
Apr 23 Python
python socket网络编程之粘包问题详解
Apr 28 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
Python3.5 Pandas模块之DataFrame用法实例分析
Apr 23 Python
Python 导入文件过程图解
Oct 15 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
简单的命令查看安装的python版本号
Aug 28 Python
python 解决pycharm运行py文件只有unittest选项的问题
Sep 01 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/03/24 PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
PHP实现的大文件切割与合并功能示例
2018/04/10 PHP
jquery连缀语法如何实现
2012/11/29 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
Python有序字典简单实现方法示例
2017/09/28 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
2019/08/02 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
python实现UDP协议下的文件传输
2020/03/20 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
暑期实践思想汇报
2014/01/06 职场文书
学校搬迁方案
2014/06/15 职场文书
医德医魂心得体会
2014/09/11 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
Java基础——Map集合
2022/04/01 Java/Android
Oracle 多表查询基本语法实例
2022/04/18 Oracle