python装饰器的4种类型:函数装饰函数、函数装饰类、类装饰函数、类装饰类[Python基础]

python

一:函数装饰函数

python">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))

二:函数装饰类

#Python学习交流群:778463939

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()

三:类装饰函数

#Python学习交流群:778463939

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装饰器的4种类型:函数装饰函数、函数装饰类、类装饰函数、类装饰类[Python基础] 的全部内容, 来源链接: utcz.com/z/530270.html

回到顶部