zoukankan      html  css  js  c++  java
  • python 函数的应用、闭包、迭代器

    一、函数的应用(第一类对象)

      函数的命名规则和变量一样

      函数名就是一个变量

      函数名可以作为参数传递给函数

    二、闭包

      1.含义:在内层函数中访问外层函数的局部变量

      2.闭包的作用

        1.保护你的变量不受侵害

        2.可以让一个变量常驻内存

      __closurse__  如果是None,则不是闭包

    def fun():
        a = 10
        def inner():
            print(a)
        return inner
    ret = fun()
    ret()
    

      

    三、迭代器

      dir(数据类型)  dir查看xx类型的数据可以接收那些方法

      __iter__  获取当前对象的迭代器

      所有的带__iter__可以使用for循环的都是可迭代对象

      可迭代对象可以使用__iter__()来获取迭代器

      迭代器里有__next__()

      迭代器的特点:

        1.只能向前

        2.惰性机制

        3.节省内存(生成器)

       可以通过dir()来判断数据是否是可迭代的,以及数据是否是迭代器

      判断方法:

        from collections import Iterable     # 可迭代对象

        from collections import Iterator    #   迭代器

        isinstance(数据,Iterable)

        isinstance(数据,Iterator)

    from collections import Iterable     # 可迭代对象
    from collections import Iterator    #   迭代器
    lst = ["aaa", "bbb", "ccc", "ddd", "fff"]
    print(isinstance(lst,Iterable))    #  True
    print(isinstance(lst,Iterator))    # False
    

      

      for循环的内部机制

        1.首先获取到迭代器

        2.使用while循环获取数据

        3. it.__next__()来获取数据

        4.处理异常  

        try:

          xxxx

        except  StopIteration:

          xxx

    lst = ["aaa", "bbb", "ccc", "ddd", "fff"]
    
    it = lst.__iter__()
    while 1:
        try:
            el = it.__next__()
            print(el)
        except StopIteration:
            break
    

      

  • 相关阅读:
    查看集群基本情况
    Linux的awk命令详解
    wget命令详解
    ES集群操作原理
    Linux常见的Shell命令
    影响ES相关度算分的因素
    Hive三种建表语句详解
    大数据常用组件端口号
    Hadoop Shell命令
    Zookeeper搭建
  • 原文地址:https://www.cnblogs.com/JinMuBaoBao/p/9455478.html
Copyright © 2011-2022 走看看