zoukankan      html  css  js  c++  java
  • 装饰器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()
    
  • 相关阅读:
    HTTP 和 HTTPS
    HTTP 协议
    基础查询
    python编程从入门到实践笔记
    python-32-类的组合与初识继承
    python-31-初识面向对象与自定义类
    python-30-异常处理
    python-29-模块与包导入
    python-28-序列化模块
    python-27-其他常用模块(二)
  • 原文地址:https://www.cnblogs.com/luckycn/p/7050576.html
Copyright © 2011-2022 走看看