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()方法时从当前位置继续运行

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

原文地址:https://www.cnblogs.com/suncunxu/p/10046334.html