首页 > 代码库 > 关于python装饰器
关于python装饰器
关于python装饰器,不是系统的介绍,只是说一下某些问题
1 首先了解变量作用于非常重要
2 其次要了解闭包
1 def logger(func): 2 def inner(*args, **kwargs): 3 print "Arguments were: %s, %s" % (args, kwargs) 4 return func(*args, **kwargs) 5 return inner
在这里面,func是被装饰的函数,*args, **kwargs是 func要接收的参数
3 装饰器
@logger def foo1(x, y=1): return x * y @logger def foo2(): return 2 foo1(5, 4) #Arguments were: (5, 4), {} #20 foo1(1) #Arguments were: (1,), {} #1 foo2() #Arguments were: (), {} #2
3.1装饰器中传参数
原理:多一层闭包
def outer(arg): def wraper(func): def inner(): print("before %s called [%s]." % (func.__name__, arg)) func() print(" after %s called [%s]." % (func.__name__, arg)) return inner return wraper
然后装饰器可以写成
@outer("mytest") def foo(): print(" foo() called.") foo()
关于python装饰器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。