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函数帮助查询小工具
Mar 13 Python
Python中统计函数运行耗时的方法
May 05 Python
Python编程中实现迭代器的一些技巧小结
Jun 21 Python
Python中格式化format()方法详解
Apr 01 Python
python监控键盘输入实例代码
Feb 09 Python
Django使用HttpResponse返回图片并显示的方法
May 22 Python
详解python之协程gevent模块
Jun 14 Python
Python for i in range ()用法详解
Sep 18 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
Feb 26 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
Mar 30 Python
详解Pandas 处理缺失值指令大全
Jul 30 Python
python之基数排序的实现
Jul 26 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
php 函数中使用static的说明
2012/06/01 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
Jquery 切换不同图片示例代码
2013/12/05 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
Python中的高级数据结构详解
2015/03/27 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
2020/07/09 Python
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
某科技软件测试面试题
2013/05/19 面试题
自荐信的基本格式
2014/02/22 职场文书
物业保安员岗位职责
2014/03/14 职场文书
商场周年庆活动方案
2014/08/19 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
Python字符串格式化方式
2022/04/07 Python