python 装饰器 (多个参数的函数,带参数的装饰器)
2017-06-14 11:32
537 查看
最简单的模板是这样的
1 # -*- coding: utf-8 -*- 2 3 #模拟网站登陆访问认证 4 5 name = 'abc' 6 password='123' 7 8 def certi(model):#装饰器 9 def outr(fun):#装饰器加参数需要多加一层嵌套 10 def login(*args,**kwargs):#为了兼容各类函数参数,添加 *args,**kwargs 不固定参数 11 if model=='password': 12 print('enter password') 13 user_name = raw_input('user_name ').strip() 14 paswd=raw_input('password ').strip() 15 if user_name==name and paswd==password: 16 print('pass') 17 return fun(*args,**kwargs) 18 else: 19 print('error ') 20 exit() 21 elif model=='lamp': 22 print('this is lamp') 23 return fun(*args,**kwargs) 24 else: 25 print('error') 26 return login 27 return outr 28 29 30 def indxe(): 31 print('home page !!') 32 33 @certi(model='password') 34 def user(): 35 print('user page !!') 36 37 @certi(model='lamp') 38 def bbs(name): 39 print('bbs %s!!'%name) 40 41 42 43 if __name__ == '__main__': 44 indxe() 45 user() 46 bbs(name='yjj') 47 ''' 48 运行结果 49 home page !! 50 enter password 51 user_name abc 52 password 123 53 pass 54 user page !! 55 this is lamp 56 bbs yjj!! 57 '''View Code
-----------------20170711 再次理解-----------------
1.简单的装饰器
2.带参数的装饰器
3.多个装饰器
相关文章推荐
- python装饰器:有参数的装饰器、不定长参数的装饰器、装饰有返回值的函数、通用的装饰器
- python 装饰器 二 (装饰带参数的函数)
- Python: 无参数的函数装饰器
- python 装饰器功能以及函数参数使用介绍
- python通过装饰器检查函数参数数据类型的方法
- python3.5函数的参数样式种类以及装饰器
- python 9-3 如何定义带参数的装饰器,提取函数签名python3 inspect.signature()
- python 装饰器功能以及函数参数使用
- python通过装饰器检查函数参数数据类型的方法
- python 装饰器功能以及函数参数使用介绍
- 【转】python 装饰器功能以及函数参数使用
- python_装饰器二(对有/不定长参数函数的装饰)
- [python]带参数的装饰函数解析
- Python 利用装饰器检测函数参数
- python装饰器:有参数的装饰器、不定长参数的装饰器、装饰有返回值的函数、通用的装饰器
- python中的装饰器,函数带参数的装饰器,带类参数的装饰器
- Python 中函数的 收集参数 机制
- python 函数参数的传递(参数带星号的说明)
- python下函数参数的传递(参数带星号的说明)
- Python中函数的参数定义和可变参数