我来自北方 跨过山与海 驻足你门外

python语法基础(7)_闭包与装饰器

闭包:

啥是闭包:嵌套函数内,使用非全局变量就是闭包
闭包干啥的:保证数据的安全性,装饰器使用

装饰器

那什么是装饰器呢?
装饰器的本质其实就是闭包
装饰器是干什么的呢?
少重复代码,可读性好
@装饰器函数 == 重新定义被装饰函数=装饰器函数(被装饰函数)

例子如下

import time
user = 'SkyRabbit '
passwd = 'SkyRabbit'
def auth(auth_type):
    print("auth func:",auth_type)
    def outer_wrapper(func):
        def wrapper(*args, **kwargs):
            print("wrapper func args:",*args, **kwargs)
            if auth_type == "local":
                usernmae = input("用户名>>>>>")
                password = input("密码>>>>>>")
                if user == usernmae and passwd == password:
                    print("\033[32;1mUser\033[0m")
                    return func(*args, **kwargs)
                else:
                    exit("\033[31;1m错误\033[0m")
        return wrapper
    return outer_wrapper
def index():
    print("in index")


@auth(auth_type = "local")
def home(name):
    print("in home",name)
    return "from home"

print(home('alex'))
index()
posted @ 2019-07-22 16:40  SkyRabbit  阅读(95)  评论(0)    收藏  举报
您的浏览器不兼容canvas