码迷,mamicode.com
首页 > 编程语言 > 详细

Python不归路_装饰器(二)

时间:2017-08-23 17:33:27      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:嵌套   text   装饰器   color   logs   print   man   inpu   函数   

装饰器上节回顾

  装饰器主要是由高阶函数和嵌套函数组成的,它由有两大特性:1、不改变被装饰函数原代码;2、不改变被装饰函数调用方式

  高阶函数主要有两大特性:1、被装饰函数作为高阶函数的参数;2、return函数

  嵌套函数特性:在一个函数内,新定义一个函数

  下面我们来看一段代码,给login_index()和login_mang()添加用户密码认证的功能的装饰器。

user=gally‘ #定义用户名   
password=123‘  #定义密码
def auth(func):  #定义装饰器   被装饰函数作为高阶函数参数
    def deco(*args,**kwargs):  #嵌套函数
        name=input(用户名:)
        passwd=input(密码:)
        if name==user and passwd == password:
            func(*args,**kwargs)
        else:
            pass
    return deco  #返回函数    return函数
@auth # login_index=auth(login_index)=deco
def login_index():
    print(welcome index)
@auth
def login_mang():
    print(welcome mang)
login_index()  #执行
login_mang()  #执行

  执行结果

用户名:gally
密码:123
welcome index
用户名:gally
密码:123
welcome mang

  在这段代码中,没有修改login_index()和login_mang()原代码内容,也没有改变login_index()和login_mang()函数调用方式,同时给login_index()和login_mang()函数添加了用户认证的功能。这就是装饰器,也叫语法糖。

 

-------不会开发的运维不是好厨师

Python不归路_装饰器(二)

标签:嵌套   text   装饰器   color   logs   print   man   inpu   函数   

原文地址:http://www.cnblogs.com/gally-jiang/p/7418529.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!