Python获取当前函数名称方法实例分享

yipeiwu_com6年前Python基础

本文实例主要是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机器学习包mlxtend的安装和配置详解

python机器学习包mlxtend的安装和配置详解

今天看到了mlxtend的包,看了下example集成得非常简洁。还有一个吸引我的地方是自带了一些data直接可以用,省去了自己造数据或者找数据的处理过程,所以决定安装体验一下。 依赖环...

在python Numpy中求向量和矩阵的范数实例

在python Numpy中求向量和矩阵的范数实例

np.linalg.norm(求范数):linalg=linear(线性)+algebra(代数),norm则表示范数。 函数参数 x_norm=np.linalg.norm(x,...

pandas计数 value_counts()的使用

pandas计数 value_counts()的使用

在pandas里面常用value_counts确认数据出现的频率。 1. Series 情况下: pandas 的 value_counts() 函数可以对Series里面的每个值进行计...

Python Excel处理库openpyxl使用详解

openpyxl是一个第三方库,可以处理xlsx格式的Excel文件。pip install openpyxl安装。 读取Excel文件 需要导入相关函数 from openpy...

python分割列表(list)的方法示例

前言 在日常开发中,有些API接口会限制请求的元素个数,这时就需要把一个大列表分割为固定的小列表,再进行相关处理,本文搜集了几个简单的方法,分享出来供大家参考学习,下面来看看详细的介绍:...