• Python基础(四)


    一 . 装饰器(很重要的一个内容)

    定义:  本质是函数,(装饰其他函数)就是为其他函数添加其他功能

    注意事项:a.不能修改被装饰的函数的源代码,

                      b. 不能修改被装饰的函数的调用方式。

     补充:

             a.函数就是“变量”,把函数体赋给了函数名。

             b. 高阶函数+嵌套函数>>>>装饰器

             c.高阶函数:把一个函数名当做实参传给另一个函数(不修改被装饰的函数的源代码);

                                  返回值中包含函数名(不修改被装饰的函数的调用方式)。

    #一个函数名当做实参传给另一个函数
    import
    time def bar(): time.sleep(3) print('in the bar') def test1(func): start_time = time.time() func() #run bar stop_time = time.time() print("the func run time is %s" % (stop_time - start_time) ) #运行时间等于结束时间减去开始时间 test1(bar)

    注:不大理解这个(哈哈哈)

    # 返回值中包含函数名
    import
    time def bar(): time.sleep(3) print('in the bar') def test2(func): print(func) return func #print(test2(bar)) bar = test2(bar) bar()

     d.嵌套函数

    函数的嵌套,在函数的内部再申明一个函数,而不是去调用
    def foo():
        print("in the foo")
        def bar():
            print("in tne bar")    #函数的嵌套,在函数的内部再申明一个函数,而不是去调用
    
        bar()
    foo()
    
    
    #局部变量与全局变量的访问次序:
    x = 0 def grandpa(): x = 1 def dad(): x=2 def son(): x=3 print(x) son() dad() grandpa()
    运行结果:3

    
    
    
    
    
     1 import time
     2 user,passwd = "xiaolaizi","abc123"
     3 #装饰器
     4 def auth(func):
     5     def wrapper(*args,**kwargs):
     6         username = input ("Username:").strip()   #strip去空格
     7         password = input("Password:").strip()
     8 
     9         if user == username and passwd == password:
    10             print("33[32;1mUser has passed authentication33[0m")
    11             res = func(*args,**kwargs)
    12             print(20*'*')
    13             return res
    14         else:
    15             exit("33[31;1mUser has not passed authentication33[0m")
    16     return wrapper
    17 def index():           #定义一个首页
    18     print("welcome to index page")
    19 @auth   #本地验证@auth(auth_type = "local")
    20 def home():        #定义一个登陆页面
    21     print("welcome to home page")
    22     return "from home"
    23 @auth   #远程验证@auth(auth_type = "ldap")
    24 def bbs():        #定义一个论坛区页面
    25     print("welcome to bbs page")
    26 
    27 index()
    28 print(home())
    29 #home()
    30 bbs()
    View Code
    
    
    
     

            

  • 相关阅读:
    【QCon笔记】Native 和 Web 融合
    点透
    测试
    Moom for mac 最棒的窗口管理软件
    Egret白鹭H5小游戏开发入门(三)
    Egret白鹭H5小游戏开发入门(二)
    Egret白鹭H5小游戏开发入门(一)
    关于Canvas模糊的问题
    利用Canvas实现360度浏览
    JS中取整以及随机颜色问题
  • 原文地址:https://www.cnblogs.com/bltstop/p/9372952.html
Copyright © 2020-2023  润新知