51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Python 装饰类中所有自定义函数

Python 装饰器可以对既有方法执行强大的自定义功能, 而且使用@关键字已经是很方便的使用方式了,但是无法解决需要装饰所有函数的需求,本文记录解决方案。

解决思路 {#解决思路}

需要用到Python类自带的魔法函数

  • 获取到类中所有方法、属性名称
  • 过滤得到方法名称
  • 通过__getattribute__方法获得方法定义
  • 重载__getattribute__方法,装饰类中的方法,返回装饰后的函数

应该是没有说清楚,上代码吧

示例代码 {#示例代码}

  • 展示一个自动装饰类方法,对函数运行时间进行计时、打印的程序
  • 函数输入类定义,使用返回的类定义(装饰过的类)运行时即可得到运行计时结果
  • 输出

参考资料 {#参考资料}



文章链接:
https://www.zywvvd.com/notes/coding/python/python-wrap-all-method/python-wrap-all-method/

赞(0)
未经允许不得转载:工具盒子 » Python 装饰类中所有自定义函数