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

    哈赛

    经典时刻

    昨日内容回顾

    1 形参的第三种,动态传参

    1 位置参数的动态传数 *args

    2  关键字的动态传数 **kwargs

      Def  fun(*args,**wkargs)

       Pass

    *** 在函数声明的位置,表示聚合

    *** 在函数调用的时候,表示打散,传参

    2命名空间

    1 内置命名空间

    2全局命名空间

    3局部命名空间

    3作用域:

    1,全局作用域:内置+全局,globals()

    2,局部作用域:局部(函数内部)locals()

    4 globalnonlocal

    Global 在函数内部(局部)调用全局中的函数

    Nonlocal 在局部函数访问外层函数中离他最近的那一层的那个变量

     今日主要内容

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

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

    函数名其实就是变量名,

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

    Def fun1()

    Pass

    def fun2()

    Pass

    Lst =[func1,func2]

    For e1 in lst:

       E1()

    可以作为参数 传递给函数

    Def func():

    Pass

    Def func():

    Pass

    Def proxy(fn)

    Fn()

    Proxy(func)

    可以作为函数的返回值

    Def func()

    Def inner()

    Return inner

    Func()()

    2,闭包

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

    好处:

    1. 可以保护你的变量不收外界影响
    2. 可以让变量常驻内存

    写法:

    Def under()

    A=10

    Def inner():

    Print(a)

    Return inner

    3 迭代器

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

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

    可迭代对象:iterable,里面有_intr_()可以获取迭代器,没有_next_()

    迭代器: itertor,里面有_liter_()可以获取迭代器,还有_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_()

    Xxxx

    Except StopIterration

    Break

    def func():
     a = 10
     def inner():
     print(a)
     print(inner.__closure__) # 如果打印的是None. 不是闭包. 如果不是None, 就是闭包

     func()

  • 相关阅读:
    UML——六大关系整理
    C#编写Windows 服务
    Centos7下lamp环境搭建的小笔记
    awk命令分析日志的简单笔记
    ssrf小记
    关于cookie的一些学习笔记
    xssbypass小记
    xss挑战赛小记 0x03(xssgame)
    xss挑战赛小记 0x01(xsstest)
    ubuntu下安装LAMP环境遇到的一些小问题
  • 原文地址:https://www.cnblogs.com/zzy7372/p/9452796.html
Copyright © 2011-2022 走看看