zoukankan      html  css  js  c++  java
  • python 函数名的应用(第一类对象),闭包,迭代器

    1.函数名的应用(第一类对象)

      函数名的命名规范和变量是一样的

      函数名其实就是变量名

      可以作为列表中的元素进行储存.

      

    def func1():
        pass
    def func2():
        pass
    lst = [func1,func2]
    for el in lst:
        el()

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

      

    def func():
          pass
    def proxy(fn):
          fn()
    proxy(func)

      可以作为函数的返回值

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

    2.闭包

      闭包:在内层函数中访问外层函数的局部变量

      好处:

        1.保护你的变量不受外界影响

        2.可以让变量常住内存

      写法:

        

    def outer():
         a = 10
         def inner():
               print(a)
         return inner

    3.迭代器

      使用dir来查看该数据包含了哪些方法

      用来遍历列表,字符串,元组...可迭代对象

      可迭代对象:Iterable,里面有__iter__()可以获取迭代器,没有__next__()

      迭代器:  Iterator,里面有__iter__()可以获取迭代器,还有__next__()

      迭代器特点:

          1.只能向前.

          2.惰性机制.

          3.省内存(生成器)

      for循环的内部机制.

          1.首先获取到迭代器.

          2.使用while循环获取数据

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

          4.处理异常 try:xxx except StopIteration:

          

    it = xx.__iter__()
    while 1 :
            try:
                date = it.__next__()
                xxxxxx
            except StopIteration:
                    break
  • 相关阅读:
    重写方法,重载方法,虚方法和抽象方法的使用
    基类和派生类
    C#修饰符讲解大全
    通过HTTP请求WEBAPI的方式
    计算机各种协议讲解
    时间戳
    SQL Server知识详解
    基本概念和术语
    22.C++- 继承与组合,protected访问级别
    22.QT-QXmlStreamReader解析,QXmlStreamWriter写入
  • 原文地址:https://www.cnblogs.com/zbw582922417/p/9455865.html
Copyright © 2011-2022 走看看