博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python使用内置方法和修饰器方法获取类名、函数名
阅读量:4493 次
发布时间:2019-06-08

本文共 766 字,大约阅读时间需要 2 分钟。

1. 外部获取

从外部的情况好获取,可以使用指向函数的对象,然后用__name__属性。

def a():  passa.__name__

或者

getattr(a,'__name__')

2. 内部获取

1)使用修饰器的方法

    使用修饰器就可以对函数指向一个变量,然后取变量对象的__name__方法。

def timeit(func):def run(*argv):  print func.__name__   if argv:     ret = func(*argv)   else:     ret = func()   return ret return run @timeit def t(a):   print a t(1)

2)使用sys模块的方法

def a():  print sys._getframe().f_code.co_name

 

二、 使用inspect模块动态获取当前运行的函数名

       动态获取当前运行的函数名很方便,特别是对于一些debug系统来说

import inspectdef get_current_function_name():  return inspect.stack()[1][3] class MyClass:   def function_one(self):     print "%s.%s invoked"%(self.__class__.__name__, get_current_function_name()) if __name__ == "__main__":   myclass = MyClass()   myclass.function_one()

 

转载于:https://www.cnblogs.com/code1992/p/11269958.html

你可能感兴趣的文章
Tkinter之Canvas篇(2)
查看>>
Deep Learning 13_深度学习UFLDL教程:Independent Component Analysis_Exercise(斯坦福大学深度学习教程)...
查看>>
oracle 表空间/用户 增加删除
查看>>
安装PIL库时提示python未注册错误(自定义python安装路径)
查看>>
MySQL和MSSQL差异(增量)备份的原理
查看>>
帮你整理的前端笔试面试题
查看>>
一个简单易上手的webapp框架HBuilder mui
查看>>
创建对象
查看>>
《暗时间》学习总结之高效利用时间
查看>>
设计模式—策略模式
查看>>
zhx P98 a题
查看>>
POJ 3041 Asteroids (二分图最小点覆盖)
查看>>
Vue 爬坑之路(四)—— 与 Vuex 的第一次接触
查看>>
MySQL数据迁移到SQL Server
查看>>
Disconf源码分析之启动过程分析下(2)
查看>>
HTML <input> 标签
查看>>
java抽象类实现接口可以不用实现方法
查看>>
poj 2395 Out of Hay (最小生成树的最大边)
查看>>
(原)OSX 也变成svn服务器---3(欢迎大家指出错误。交流提升自己。)
查看>>
2019春第八周作业
查看>>