Python入门之python装饰器的4种类型:函数装饰函数函数装饰类类装饰函数类装饰类
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门之python装饰器的4种类型:函数装饰函数函数装饰类类装饰函数类装饰类相关的知识,希望对你有一定的参考价值。
一:函数装饰函数
def wrapFun(func): def inner(a, b): print(‘function name:‘, func.__name__) r = func(a, b) return r return inner @wrapFun def myadd(a, b): return a + b print(myadd(2, 3))
二:函数装饰类
def wrapClass(cls): def inner(a): print(‘class name:‘, cls.__name__) return cls(a) return inner @wrapClass class Foo(): def __init__(self, a): self.a = a def fun(self): print(‘self.a =‘, self.a) m = Foo(‘xiemanR‘) m.fun()
三:类装饰函数
class ShowFunName(): def __init__(self, func): self._func = func def __call__(self, a): print(‘function name:‘, self._func.__name__) return self._func(a) @ShowFunName def Bar(a): return a print(Bar(‘xiemanR‘))
四:类装饰类
class ShowClassName(object): def __init__(self, cls): self._cls = cls def __call__(self, a): print(‘class name:‘, self._cls.__name__) return self._cls(a) @ShowClassName class Foobar(object): def __init__(self, a): self.value = a def fun(self): print(self.value) a = Foobar(‘xiemanR‘) a.fun()
以上是关于Python入门之python装饰器的4种类型:函数装饰函数函数装饰类类装饰函数类装饰类的主要内容,如果未能解决你的问题,请参考以下文章