zoukankan      html  css  js  c++  java
  • Python之浅谈装饰器

    闭包函数

    就是将原先需要调用好几遍的函数和参数写入一个包内,下次调用时一起调用

    def name(x):
        x=1
       def age():
        print(x)
        return age
    f=name(1)
    f()
    f()
    

    装饰器

    装饰器可以用来装饰原函数,它可以给原函数添加功能

    装饰器有两个原则:

    ​ 1.不改变原函数的调用方式

    ​ 2.不改变原函数的源代码

    #双层装饰器的模板
    def outter(func):
        def wrapper(*args,**kwargs):#wrapper是将要运作的函数
            #加功能
            res=func(*args,**keargs)#被装饰的函数
            return res
        retyrn wrapper
    @outter#语法糖
    def shopping():#原函数
        print('shopping')
    shopping()    #调用函数
        
    #三层装饰器的模板
    def sanceng(engine):
        def outter(func):
            def wrapper(*args,**kwargs):#wrapper是将要运作的函数
                print(engine)
                res=func(*args,**kwargs)#被装饰得函数
                return res
            return wrapper
        return outter
    @sanceng(3)#语法糖
    def shopping():#原函数
        print('shopping')
    shopping()#调用函数
    

    迭代器

    1. 把可迭代对象/迭代器对象用__iter__方法转换成迭代器对象
    2. 使用__next__取出迭代器里的所有值
    3. 使用__next__方法取尽迭代器中的所有值,一定会报错,通过异常捕捉退出while循环
      解决了不依赖索引取值
  • 相关阅读:
    中国地图偏移问题
    from scipy import integrate
    一劳永逸 变与不变
    science_action
    双峰正太分布
    grammar_action
    手动修改key 伪修改内存变量
    yum python mysql
    超越方程
    from multiprocessing import cpu_count
  • 原文地址:https://www.cnblogs.com/MrYang161/p/11342530.html
Copyright © 2011-2022 走看看