• 装饰器


    装饰器目的:在不改变原函数代码,在函数执行前后自定义功能。

    装饰器格式:

    def 外层函数(参数):

      def 内层函数(*args,**kwargs):

        return 参数(*args,**kwargs)

      return 内层函数

    def x(func):

      def y():

        ret = func()

        return ret

      return y

    装饰器的应用

    @x

    def index():

      pass

    执行函数,自动出阿发装饰器了

    v= index()

    print(v)

    推导式

    列表推导式

    目的:方便的生成一个列表

    格式:v = [i for i in 可迭代对象]  

       v= [i for i in 可迭代对象 if 条件]  条件为True才进行append

    v1 = [i for i in 'zcy']  v1 =['z','c','y']

    v2 = [i for i in ['zcy','aaa']]  v2 = ['zcy','aaa']

    v3 = [i+10 for i in range(10)]    v3 = [11,12,13,14,15,16,17,18,19]

    v4 = [99 if i > 5 else 66 for i in range(10)]

    v5 = [lambda :i for i in range(10)]

    res = v5(4)()  全部都是9

    v6 = [lambda x:x*i for i in range(10)]  此时i等于9

    v6里面是十个内存地址

    v6[0](2)  结果是18

    def num():
       ...:     return [lambda x:i*x for i in range(4)]

    print([m(2) for m in num()])    #求值

    筛选

    v = [i for i in range(10) if i > 5]  条件成立True append进去,不成立不append

    元组推导式

    和列表生成式一样,括号变成{},去重

    字典推导式

    v = {'k'+str(i):i for i in range(10)}

    data_list = [
    (1,'hahah',19),
    (2,'zzz',84),
    (3,'ccc',73)
    ]
    info_list = {i[0]:(i[1],i[2]) for i in data_list}


    元数据:flask框架
    多个装饰器:flask框架



    迭代器
    自己不会写迭代器,只用
    迭代器:帮助你对 某种对象 中的元素进行逐一获取,表象:具有__next__方法且每次调用都获取可迭代对象长得元素
    列表转成迭代器: v1 = iter(1,2,3,4) /等价 v1 = (1,2,3,4).__iter__()
    迭代器想要获取每个值:反复调用 val = v1.__next__()
    直到报错:StopIteration错误,表示已经迭代完毕

    如何判断一个对象是否是迭代器:内部是否有__next__方法

    可迭代对象
    内部具有__iter__方法且返回一个迭代器
    可以被for循环


    生成器:
    函数中如果存在yield,那么该函数就是一个生成器函数,调用生成器函数会返回一个生成器,
    生成器可以被for循环时,
    生成器函数内部的代码会执行,每次循环都会获得yield返回的值
    特殊的可迭代对象
    for i in func()
      print(i)

    也可以使用next从生成器中取值,建议使用for循环
    def func():
      print(1)
      yield 666
    val = func()
    res = next(val)
    print(res)  >>>>666
    使用next可以推动生成器的执行

     
  • 相关阅读:
    PHP定时备份MySQL,mysqldump语法大全
    虚拟机拷贝之后,发现系统内的开机自启动的nginx,不能自启动了
    八:二叉搜索树的后序遍历
    配置Ubuntu开发环境
    poj 1147 Binary codes
    test
    Python标准库:内置函数reversed(seq)
    Matplotlib 工具包 使用教程索引
    6大设计原则(1):单一职责原则
    hdu 4104
  • 原文地址:https://www.cnblogs.com/nice777/p/10981897.html
Copyright © 2020-2023  润新知