一.昨日内容回顾

  1.函数名

   函数名是一个变量名

       

   可以作为集合类的元素

   可以作为参数进行传递

   def  func(fn):

     fn()

   可以作为返回值返回

   def outer():

     def inner():

       xxx

       return inner

  2.闭包

   内层函数对外层函数的变量的访问

    def  outer():

      a = 10

      def inner():

        print(a)

        return  inner

     ret  =  outer()

     xxxxxx

    ret()

    

    作用:

      1.保护变量:   局部变量    自己函数中访问

      2.让一个变量常驻内存

   3.迭代器

    特点:

      1.省内存

      2.惰性机制,不访问__next__()  就没有值

      3.只能向前,不能反复

      在数据中包含了__iter__() 可迭代对象

    如果包含了__next__()  迭代器

    "__iter__" in dir (数据)

    "__next__" in dir (数据)

    from collections import Iterable ,Iterator

    Iterable :可迭代的

    Iterator: 迭代器

    isinstance(对象,类型)

二.今日主要内容

  迭代器

    __iter__() 获取迭代器

    __next__() 下一个

    

  生成器

    本质就是迭代器

    两种方式写生成器

      1.生成器函数

      2.生成器表达式

  

  生成器函数

    函数内部有yield,yield 返回 -> return

    yield可以把函数分段执行

    生成器函数被调用的时候,返回生成器

    def dunc():

      yield

    g = func() - 得到生成器

  

    生成器的用法和迭代器基本一致

    __next__() 开始执行生成器,执行到yield,直到没有yield,抛出StopIteration

    

    send() 可以给上一个yield传值

    

    1.省内存

    2.惰性机制,不访问__next__() 就没有值

    3.只能向前,不能反复

  各种推导式(简单)

    列表推导式[结果  for循环  if判断]

    字典推导式{key:value for循环  if判断}

    集合推导式 {key for循环  if判断}

  生成器表达式(最难)

    (结果  for循环  if 判断)

    惰性机制,  不访问__next__()  就没有值

    只能向前,不能反复

day12 Pyhton学习的更多相关文章

  1. Pyhton学习——Day26

    #多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclass ...

  2. pyhton 学习

    官方学习文档 https://docs.python.org/3/tutorial/

  3. 20190320_head first pyhton学习笔记之构建发布

    1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name ...

  4. Pyhton学习——Day2

    Python开发IDE(工具)Pycharm.eclipse1.循环while 条件 #循环体 #条件为真则执行 #条件为假则执行break用于退出所有循环continue用于退出当前循环 2.Pyc ...

  5. Pyhton学习——Day28

    #上下文协议:文件操作时使用with执行# with open('a.txt','w',encoding='utf-8') as f1:# with语句,为了让一个对象兼容with语句,必须在这个对象 ...

  6. Pyhton学习——Day27

    # hasattr(obj,'name')-->obj.name# getattr(obj,'name',default = 'xxx')--->obj.name# setattr(obj ...

  7. Pyhton学习——Day25

    #面向对象的几个方法#1.静态方法@staticmethod,不能访问类属性,也不能访问实例属性,只是类的工具包#2.类方法:@classmethod,在函数属性前加上类方法,显示为(cls)代表类, ...

  8. Pyhton学习——Day24

    # #面向对象设计:# def dog(name,gender,type):# def jiao(dog):# print('One Dog[%s],wfwfwf'%dog['name'])# def ...

  9. Pyhton学习——Day23

    #re模块方法:findall search#findall:返回所有满足匹配条件的数值,放在列表里#search : #函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象 ...

随机推荐

  1. SpringMVC-乱码问题

    乱码问题 目录 乱码问题 1. 使用原生filter解决 1. 前端jsp 2. 编写controller 3. 编写过滤器 4. 注册过滤器 2. 使用SpringMVC提供的过滤器实现 1. 使用 ...

  2. IDEA编写JavaWeb出现乱码,成功解决!

    使用IDEA写JavaWeb项目时,总会出现编码出错等问题,比如下面这样,页面显示出来一大堆乱码,下面跟着我来操作一下,可以成功解决! 首先在IDEA安装目录下有一个:bin的文件夹,打开后找到如下两 ...

  3. 使用 Promise 实现任务队列发送请求,实现最大请求数目限制

    核心 设置最大请求数量,当前请求数量,待执行队列 调用时,创建一个新任务,然后判断是否达到最大请求数量,若达到则将任务追加到待执行队列,否则,则直接执行该任务.并返回Promise 创建任务时,需要返 ...

  4. request的各种方法

    protected void doPost(HttpServletRequest request, HttpServletResponse response)        throws Servle ...

  5. 【python练习册】1.3 将1.2题生成的n个激活码保存到mysql关系型数据库中

    该题涉及到mysql中一些指令,先熟悉一下 MySQL指令 参考:https://www.cnblogs.com/zhuyongzhe/p/7686105.html mysql -u root -p ...

  6. oracle之二实例管理及数据库的启动/关闭

    实例管理及数据库的启动/关闭   2.1 实例和参数文件 1.instance 功能:用于管理和访问database.instance在启动阶段读取初始化参数文件(init parameter fil ...

  7. JDK15真的来了,一起来看看它的新特性

    目录 简介 JDK15的新特性 JEP 385 Deprecate RMI Activation for Removal JEP 371 Hidden Classes JEP 339 Edwards- ...

  8. hystrix文档翻译之metrics

     metrics和监控 动机 HystrixCommands和HystrixObservableCommands执行过程中会产生相关运行情况的metrics.这些metrics对于监控系统表现有很大的 ...

  9. dubbo学习(八)dubbo项目搭建--消费者(服务消费者)

    PS:  项目架子以及工程间的maven依赖配置暂时省略,后续看情况可能会单独写一篇文章捋捋框架结构,先马克~ 配置和启动 1.pom文件引入dubbo和zookeeper的操作客户端(此步骤与生产者 ...

  10. 深入研究Broker是如何持久化的

    前言 上篇文章王子和大家讨论了一下RocketMQ生产者发送消息的底层原理,今天我们接着这个话题,继续深入聊一聊RocketMQ的Broker是如何持久化的. Broker的持久化对于整个Rocket ...