zoukankan      html  css  js  c++  java
  • 11.30

    叠加多个装饰器

    1.加载顺序:自下而上

    2.执行顺序:自上而下

    格式为:

    def outer1(func):
      def inner(*args,**kwargs):

        res=func(*args,**kwargs)

        return res

      return inner

    def outer2(func):
      def inner1(*args,**kwargs):

        res=func(*args,**kwargs)

        return res

      return inner1

    @outer1

    @outer2

    def sa():

      print("x")

    sa()

    装饰器装饰的对象一般为函数,为装饰器添加功能毫无意义,因此装饰器加载顺序是自下而上,由原函数传参至底部装饰器并返回一个新的函数体代码块,再与其上的装饰器结合

    执行顺序至上而下

    有参装饰器

    当需要给装饰器传参时,只有两层结构的装饰器无法满足情况,因此需要叠加一层,可以接受传递的参数
    三元表达式

    格式为 x if 条件表达式 else y

    生成式

    列表生成式

    字典生成式

    分别将可迭代对象作为参数,并迭代取值,返回相应的格式

    匿名函数

    匿名函数就是只定义了一个函数的内存地址,主要用于临时使用一次的场景

    Python使用lambda来创建匿名函数

    lambda只是一个表达式,lambda主体是一个表达式而不是代码块,仅仅能在lambda表达式中封装有限的逻辑进去

    在Python中,使用yield的函数被称为生成器(generator)

    跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作

    在调用生成器运行的过程中,每次运行yield时,函数会暂停并保存当前所有的运行信息返回yield的值

    并在下一次执行next()方法时从当前位置继续运行

    调用一个生成器函数返回的是一个迭代器对象

  • 相关阅读:
    Single Image Haze Removal Using Dark Channel Prior翻译
    android的单元测试
    HTML&JS笔记(1)
    动手学Javascript(1)——PopStar
    Cocos2d-x教程第(11)讲-利用遮罩(蒙版)CCLayerColor制作新手引导界面(上)
    硬币翻转倍数递增试算
    java泛型接口详解
    1352
    大话设计模式之——简单工厂模式
    iOS自适应行高方法及问题
  • 原文地址:https://www.cnblogs.com/suncunxu/p/10046334.html
Copyright © 2011-2022 走看看