建设公司网站的可行性研究,网络工程和软件工程哪个好,wordpress前端用户中心开发,可以制作试卷的app 装饰器#xff0c;带参数的装饰器#xff0c;类的装饰器 判断是否为可迭代的 from collections import Iterable print(isinstance([1,2,3],Iterable)) # 1、简单的装饰器 def debu… 装饰器带参数的装饰器类的装饰器 判断是否为可迭代的 from collections import Iterable print(isinstance([1,2,3],Iterable)) # 1、简单的装饰器 def debug(func): def wrap(): print(fdebug:func name is {func.__name__}) return func() return wrap debug def calculate(): return 12 print(calculate()) # 2、装饰器带参数,先接受的是参数,后接受的是函数 def debug(parameter): def wrapper(func): def wrap(): print(fdebug:func name is {func.__name__}) print(fdebug:func parameter is {parameter}) return func() return wrap return wrapper debug(testdata) def calculate(): return 12 print(calculate()) # 3、装饰带参数的函数,需要将参数给定义的wrap def debug(func): def wrap(a, b): print(fdebug:func name is {func.__name__}) return func(a, b) return wrap debug def calculate(a,b): return ab print(calculate(1,2)) 函数修饰函数 4、装饰器带参数,同时装饰的函数也带参数 def debug(parameter): def wrapper(func): def wrap(c, d): print(fdebug:func name is {www.shengchangyule.net func.__name__}) print(fdebug:func parameter is {parameter}) return func(c, d) return wrap return wrapper debug(data) def calculate(c, d): return c*d print(calculate(5,7)) 函数修饰类 5、带参数的函数装饰器 装饰 带参数的类 def debug(parameter): def inner(func): def wrap(a,b): print(class namewww.yongxin7.cn/, func.__name__) print(genrator parameter is, parameter) return func(a,b) return wrap return inner debug(get) class Calculate(object): def __init__(self,a,b): self.a a self.b b def cal(self): num self.a self.b return num def sal(self): cnum self.a * self.b return cnum c Calculate(3,4) print(c.cal()) 类装饰函数 6,带参数的类装饰器 修饰 带参数的函数 ini里面接受的是装饰器的参数如果无参数则接受的是函数名 class Debug(object): def __init__(self,parameter): self.parameter www.365soke.com parameter def __call__(self, func): def wrap(a,b): print(function name is, func.__name__) print(debug parameter is, self.parameter) return func(a,b) return wrap Debug(post) def calculate(a,b): c a * b return c print(calculate(2,5)) 类装饰类 7 带参数的类装饰器 装饰 带参数的类 class Debug(object): def __init__(self, parameter): self.parameter parameter def __call__(self, func): def wraps(a,b): print(function name www.shengchanyule.com is, func.__name__) print(debug parameter is, self.parameter) return func(a,b) return wraps Debug(get) class Calculate(object): def __init__(self,a,b): self.a a self.b b def cal(self): num self.a self.b * self.a return num c Calculate(5,3) print(c.cal()) 转载于:https://www.cnblogs.com/qwangxiao/p/10724496.html