zoukankan      html  css  js  c++  java
  • 迭代器

    一、函数名的应用(第一类对象)
       函数名是一个特殊的变量,与括号配合可以执行函数的变量

    函数名的命名规范和变量是一样的.函数名其实就是变量名,
    可以作为列表中的元素进行存储.
      1、函数名的内存地址
    def func():
        print("呵呵")
    print(func)

        2、函数名可以赋值给其他变量

    def func():
        print("呵呵")
    print(func)
    a=func
    a=()

        3、函数名可以当做容器类的元素

    def func1():
            pass
    def func2():
            pass
    lst = [func1, func2]
    for el in lst:
            el()
       4、函数名可以作为函数的参数传递给参数
    def func():
            pass
    def proxy(fn):
            fn()
    proxy(func)

        5、函数名可以当做函数的返回值

    def func():
            def inner():
                pass
            return inner
    func()()

    二. 闭包
    闭包:在内层函数中访问外层函数的局部变量
       用.__closure__来检测函数是否是闭包,返回cell就是闭包,返回Nnoe就不是闭包

    好处:
    1. 保护你的变量不受外界影响
    2. 可以让变量常驻内存
    def outer():
        a = 10
        def inner():
           print(a)
    return inner
    三. 迭代器
    使用dir来查看该数据包含了那些方法
    用来遍历列表,字符串,元祖....可迭代对象
    可迭代对象: Iterable, 里面有__iter__()可以获取迭代器
    迭代器Iterator: 里面有__iter__()可以获取迭代器, 还有__next__()

    迭代器特点:
    1. 只能向前.
    2. 惰性机制.
    3. 省内存(生成器)
    for循环的内部机制.
    1. 首先获取到迭代器.
    2. 使用while循环获取数据
    3. it.__next__()来获取数据
    4. 处理异常 try:xxx except StopIteration:

    it = xx.__iter__()
    while 1:
    try:
    data = it.__next__()
    xxxxxx
    except StopIteration:
    break
  • 相关阅读:
    Django
    Django
    Django
    6.1
    Django
    Django
    Django
    Django
    Django简介
    web应用/http协议/web框架
  • 原文地址:https://www.cnblogs.com/shanae/p/9455503.html
Copyright © 2011-2022 走看看