装饰器、装饰器类与类装饰器(三)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰器、装饰器类与类装饰器(三)相关的知识,希望对你有一定的参考价值。
参考技术A注意与 装饰器类 的区别
__new__() 是一种负责创建类实例的静态方法,它无需使用 @staticmethod 装饰器修饰,且该方法会优先 __init__() 初始化方法被调用。
一般情况下,覆写 __new__() 的实现将会使用合适的参数调用其超类的 super().__new__() ,并在返回之前修改实例。例如:
13_newMethodInCls.py
需要注意的是
用这个原理,就可以将 __new__ 重新覆写,让他返回单例
假设有很多类,但是都需要加上一个输出偶数的方法,以 14_decoratorForClsExample.py 其中的一个 NumProcessing 类为例
这个装饰器的逻辑就是
用大白话说, @装饰器 这个语法糖就是把被装饰的函数对象作为参数传进 @ 后面跟着的东西再加个括号,比如如果是 @A ,那么被装饰的函数其实就是被包裹进 A() 里面,如果 @A() ,那么就是被包裹进 A()() 里面因为 A() 返回的才是起装饰作用的函数, A() 传进去的是装饰器的参数, 这也是为什么装饰函数或者装饰类需要能调用的原因 。
以上是关于装饰器、装饰器类与类装饰器(三)的主要内容,如果未能解决你的问题,请参考以下文章