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

  

posted @ 2018-08-10 15:50  AndyStrack  阅读(208)  评论(0编辑  收藏  举报