首页 > 其他 > 详细

装饰器

时间:2018-03-03 10:23:21      阅读:220      评论:0      收藏:0      [点我收藏+]

装饰器:本质是个函数,主要功能给其他函数附加新的功能

1,给其他函数附加新的功能

2,在不修改其他函数的内部和不修改其调用方式前提下,给函数装饰新的功能

函数其实是个变量

装饰器有高阶函数和嵌套函数组成

高阶函数定义

1以函数名为实参给另一个函数作为传递变量

2,返回值包含函数名(其它是返回了一个函数的内存地址)

例子:

技术分享图片
 1 user_status= False
 2 
 3 def login(*args,**kwargs):
 4     # args
 5     print(*args)
 6     def out_wrapper(func):
 7         def inner(*args,**kwargs):
 8             user_name="yuan"
 9             user_password="123456"
10             global user_status
11             # print(user_status)
12             if user_status==False :
13                 _user_name=input("usename:")
14                 _user_password=input("passwor:")
15                 if user_name==_user_name and user_password==_user_password :
16                     user_status=True
17                     print("welcome login")
18                 else:
19                     print("usename or password is wrong")
20             if user_status==True:
21                 ret=func(*args,**kwargs)
22                 return ret
23         return inner
24     return out_wrapper
25 
26 def home():
27     print("主页")
28 
29 @login("sd")
30 def henan(name):
31     print("河南",name)
32 @login()
33 def guangdong():
34     print("广东")
35 
36 
37 ‘‘‘
38 #hennan=login(hennan)这个打印出来的是内存地址======
39 # print(hennan)
40 ‘‘‘
41 
42 henan("河南页面")
43 guangdong()
View Code

 

装饰器

原文:https://www.cnblogs.com/JIM-FAN/p/8495667.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!