美文网首页
Pythpn 3周

Pythpn 3周

作者: 小胡123 | 来源:发表于2018-08-26 22:20 被阅读0次

    生成器

    定义:在Pythpn中,一边循环一边计算的机制,成为生成器 generator

    创建生成器,只需把列表生成式[ ]改成( )
    L = (x for x in range(3))直接打印L出现生成器,如果要打印每个元素可以通过next()函数获得生成器的下个返回值,当计算到最后一个没有更多元素时报错。

    如果函数中出现yield,就是生成器。
    x 影响*导入
    xx
    避免与关键字冲突
    __xx私有
    xx魔法方法
    xx公有
    生成器不仅记住数据状态,还记住控制状态。
    特点:节约内存

    迭代器

    可迭代对象:能用for 循环的
    (列表,字典,元组,字符串,集合)
    判断一个对象是否可迭代,用isinstance
    判断一个对象是否可迭代,用iterable
    迭代器
    能用next()函数的叫迭代器
    生成器一定是迭代器,可迭代对象不一定是迭代器,例如空列表
    判断一个对象是不是迭代器用from collections import Iterator
    把可迭代对象转成迭代器用iter()函数
    可作用于for循环的对象都是可迭代对象
    可作用于next()函数的对象都是迭代器

    闭包

    概念:函数里有函数,并用到外部函数的变量
    闭包具有提高代码可复用性的作用
    闭包优化了变量
    闭包引用了外部函数的局部变量,外部函数的局部变量没有及时释放,消耗内存

    进程

    编写完的代码没运行时时程序
    fork()函数调用一次返回两次,子进程返回0,父进程返回子进程的ID,子进程调用getppid()可拿到父进程ID
    父进程,子进程执行顺序没有规律,取决于操作系统的调用
    apply_async:使用非阻塞方式调用func(并行执行,堵塞方式必须等待上一个进程退出才能执行下一个进程)apply:使用阻塞方式调用func
    close():关闭Pool,使其不再接受新的任务
    terminate():不管任务是否完成,立即终止

    线程

    使用threading模块
    使用多线程并发的操作,花费时间要短
    创建好的线程,需要调用start()方法来启动
    主线程会等待所有的子线程结束后才结束
    多线程开发中,全局变量是多个线程都共享的数据,而局部变量是各自线程的,非共享的
    queue队列(先进先出)

    相关文章

      网友评论

          本文标题:Pythpn 3周

          本文链接:https://www.haomeiwen.com/subject/uvqoiftx.html