装饰器2

Posted lucky娜娜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰器2相关的知识,希望对你有一定的参考价值。

 

 

#-*- coding:utf-8 -*-
static = False
def login(func):        #这里func,用来把被修饰的函数名以参数传可以入进来,然后
                          #就可以在装饰器函数中的任意位置进行调用被装饰的函数,就是18line
    def inner():
        name_ = ‘chenna‘
        keyword_ = ‘1234‘
        global static
        if static == False:
            name = (raw_input(‘输入用户名:‘)).strip()
            keyword = (raw_input(‘输入密码:‘)).strip()
            if name == name_ and keyword == keyword_:
                print ("登录成功")
                static = True
            else:
                print (‘你输入的用户名或者密码错‘)
        if static == True:
            func()     #在这里调用了被装饰函数,对应3line

    return inner      #这里返回装饰器的里面的嵌套的函数的内存地址.这样就把内存地址赋值给
                       #American,然后在调用americna(),就是在调用inner函数,对应line26

def firstage():
    print (‘欢迎进入首页‘)

@login    #相当于:在调用时的,american=login(american),
def american():
    print (‘欢迎进入欧美界面‘)
@login
def japan():
    print (‘欢迎进入日韩界面‘)

def china():
    print (‘欢迎进入中国界面‘)

american()

 

以上是关于装饰器2的主要内容,如果未能解决你的问题,请参考以下文章

类中的装饰器在Pycharm中抛出警告

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码

Python进阶装饰器(Decorator)