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+tkinter模拟“记住我”自动登录实例代码
Jan 16 Python
python爬取网页内容转换为PDF文件
Jul 28 Python
python Gunicorn服务器使用方法详解
Jul 22 Python
django之对FileField字段的upload_to的设定方法
Jul 28 Python
python3使用print打印带颜色的字符串代码实例
Aug 22 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
python 实现按对象传值
Dec 26 Python
Python内置数据类型list各方法的性能测试过程解析
Jan 07 Python
让Django的BooleanField支持字符串形式的输入方式
May 20 Python
Python实时监控网站浏览记录实现过程详解
Jul 14 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
通用的Django注册功能模块实现方法
Feb 05 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中使用Oracle数据库(4)
2006/10/09 PHP
php array_intersect()函数使用代码
2009/01/14 PHP
php 日期时间处理函数小结
2009/12/18 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
js获取url传值的方法
2015/12/18 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
jQuery 中的 DOM 操作
2016/04/26 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
Python中的下划线详解
2015/06/24 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
项目专员岗位职责
2013/12/04 职场文书
居住证明范文
2015/06/17 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers