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 str与repr的区别
Mar 23 Python
合并百度影音的离线数据( with python 2.3)
Aug 04 Python
Python基于tkinter模块实现的改名小工具示例
Jul 27 Python
浅谈python中字典append 到list 后值的改变问题
May 04 Python
Python实现多态、协议和鸭子类型的代码详解
May 05 Python
Python语言进阶知识点总结
May 28 Python
利用python实现AR教程
Nov 20 Python
使用python和pygame制作挡板弹球游戏
Dec 03 Python
Python Sympy计算梯度、散度和旋度的实例
Dec 06 Python
python里的单引号和双引号的有什么作用
Jun 17 Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 Python
Python初学者必备的文件读写指南
Jun 23 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/12/14 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
javascript textContent与innerText的异同分析
2010/10/22 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
JavaScript中的面向对象介绍
2012/06/30 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
微信小程序实现导航栏和内容上下联动功能代码
2020/06/29 Javascript
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
Python assert语句的简单使用示例
2019/07/28 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
幼儿园小班评语
2014/04/18 职场文书
文明寝室标语
2014/06/13 职场文书
地球一小时活动总结
2015/02/27 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技