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中map()与zip()操作方法
Feb 27 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
Python 备份程序代码实现
Mar 06 Python
python实现excel读写数据
Mar 02 Python
python tkinter界面居中显示的方法
Oct 11 Python
numpy.where() 用法详解
May 27 Python
python中的decimal类型转换实例详解
Jun 26 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
selenium+Chrome滑动验证码破解二(某某网站)
Dec 17 Python
使用Python实现NBA球员数据查询小程序功能
Nov 09 Python
Pandas之缺失数据的实现
Jan 06 Python
python 如何获取页面所有a标签下href的值
May 06 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遍历文件夹和文件列表示例分享
2014/03/11 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
原生js实现日期联动
2015/01/12 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
Python zip()函数用法实例分析
2018/03/17 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
详解python做UI界面的方法
2019/02/27 Python
详解Python的三种拷贝方式
2020/02/11 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
python空元组在all中返回结果详解
2020/12/15 Python
详解python中的异常和文件读写
2021/01/03 Python
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
MADE法国:提供原创设计师家具
2018/09/18 全球购物
敬老文明号事迹材料
2014/01/16 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
服务行业演讲稿
2014/09/02 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
五年级学生评语大全
2014/12/26 职场文书
特种设备安全管理制度
2015/08/06 职场文书
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL