• day5学python 基础+装饰器内容


    基础+装饰器内容

      递归特性
    # 1.必须有一个明确的结束条件
    # 2.每次进入更深一层递归时,问题规模相比上次递归应有所减少
    # 3.递归效率不高
    def run(n):
        print(n)
        if int(n/2)>0:
            return run(n / 2)
        print("-->",n)
    run(10)

    =============================================================

      局部变量与全局变量知识

    1.全局变量中 数字/字符串不能在函数中修改 列表和字典可以修改

    names=["xiao","mibg","ming"]
    def change():
        names[0]="cf"
        print(names)
    change()
    print(names)

    ==============================================================

    函数即”变量“! (函数名-代表函数地址 || 函数名()-代表调用函数)

      高阶函数

    1 把一个函数名当作实参传给另一个函数(在不修改被装饰函数源代码的情况下为其添加功能)

    2 返回值中包含函数名(不修改函数的调用方式)

    ==============================================================

      装饰器

    高级函数+嵌套函数==>装饰器  #嵌套函数-函数套着函数

    # 定义:本质是函数,(装饰其他函数)为其他函数添加附加功能
    # 原则: 1.不能修改被装饰的函数的源代码
    # 2.不能修改被装饰的函数的调用方式
    import time
    
    user,word="cf","123"
    def auth(auth_type):  
        print("auth_type",auth_type)
        def out_wrapper(func): 
            def wrapper(*args,**kwargs):
                if(auth_type=="local"):
                    usename=input("usename:").strip()
                    psword= input("psword:").strip()
                    if(user==usename and psword==word):
                        print("33[32;1m HI boy 33[0m")
                        func(*args,**kwargs)
                    else:
                        exit("failed")
                elif(auth_type=="ldap"):
                    func()
            return wrapper
        return out_wrapper
    def index():
        print("index")
    
    @auth(auth_type="local")       #home=auth(local)==>wrapper()
    def home():
        print("home")
    @auth(auth_type="ldap")
    def bbs():
        print("bbs")
    
    index()
    home()
    bbs()
  • 相关阅读:
    Docker 基础 B站 学习 最强 教程
    apache+php安装
    php拓展 swoole 安装
    go beego框架 入门使用 (一)
    php 使用 phpword 操作 word 读取 word
    linux + MongoDB 安装 + 部署 + 讲解 (满满干货看完记得收藏噢)
    Thanos设计简析
    Prometheus TSDB文件格式-index
    Linux Kernel文件系统写I/O流程代码分析(二)bdi_writeback
    Linux Kernel文件系统写I/O流程代码分析(一)
  • 原文地址:https://www.cnblogs.com/cc123nice/p/10468446.html
Copyright © 2020-2023  润新知