zoukankan      html  css  js  c++  java
  • 函数-函数进阶-装饰带参数的函数

    user_state = False

    def login(func):
      def inner(*args,**kwargs):
        global user_state
        db = {'kingforn': 'abc123', 'alex': 'abc!@#'}
        if user_state == False:
        _username = input('输入用户名:')
        _password = input('输入密码:')
          if _username in db and _password == db[_username]:
          print('验证通过,welcome:', _username)
          user_state = True
          else:
          print('wrong username or password')
        else:
        print('用户已登陆,通过验证')
        if user_state:
        func(*args,**kwargs)
      return inner


    def home():
    print("-----首页-----")

    @login
    def ameriac(args):
    print("-----美国专区-----",args)

    @login
    def jp():
    print("-----日韩专区-----")


    def cn():
    print("-----大陆专区-----")



    ameriac('3p')
    jp()

    执行结果

    输入用户名:alex
    输入密码:abc!@#
    验证通过,welcome: alex
    -----美国专区----- ('3p',)
    用户已登陆,通过验证
    -----日韩专区-----

  • 相关阅读:
    继承性03
    继承性
    Arrays与Math类
    Static关键字
    random模块,time模块,os模块,sys模块
    re模块
    冒泡排序、递归、二分查找
    内置函数
    生成器和生成器表达式
    迭代器
  • 原文地址:https://www.cnblogs.com/kingforn/p/10918013.html
Copyright © 2011-2022 走看看