zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    【ORA-02049】超时分布式事务处理等待锁 解决方法
    Git使用出错:Couldn‘t reserve space for cygwin‘s heap, Win32
    JS身份证号码校验
    linux 下查看cpu位数 内核等参数命令(转)
    linux ps命令,查看进程cpu和内存占用率排序(转)
    JAVA图片验证码
    JAVA BigDecimal 小数点处理
    Linux命令大全
    Eclipse Java注释模板设置详解
    JSONArray的应用
  • 原文地址:https://www.cnblogs.com/cc123nice/p/10468446.html
Copyright © 2011-2022 走看看