• 函数名的使用、闭包、生成器


    一、函数名的使用

    1、函数名可以当成迭代元素

    1 def func1():
    2     pass
    3 def func2():
    4     pass
    5 lst=[1,2,func1,func2]

    2、函数名可以当成参数传递

    1 def func():
    2     print("11111")
    3 def proxy(fn):
    4     fn()
    5 proxy(func)

    3、函数名可以当成返回值

    1 def func()
    2     def func1()
    3         print("222222")   
    4     return func1
    5 f=func()                            #函数返回的是func1加上()调用
    6 f()

    # 注:只要记住函数名可以被当作变量使用

    二、闭包

    1、含义:可以在函数的内部访问函数外层的局部变量

    2、优点:可以保护内部变量不收侵害、可以是变量常驻内存

    3、简单的闭包

    1 def func():
    2     a=10
    3     def func1()
    4         print(a)
    5     return func1
    7 f=func
    8 f()

    三、迭代器

    1、用dir()来查看可以执行哪些方法

    2、可迭代数据可以使用__iter()__获取迭代器,获取之后可使用__next()__方法

    3、迭代器模拟for循环

    1 lst=[1,2,3,4]
    2 it=lst.__iter__() #获取迭代器
    3 def func():
    4     try:
    5         el=it.__next__()
    6         print(el)
    7     except StopIteration:
    8         break
    9 func()

    4、判断数据是否可迭代、以及数据是否是迭代器的方法

     1 from collections import Iterable
     2 from collections import Iterator
     3 
     4 lst=[1,2,3]
     5 it=lst.__iter__()
     6 
     7 print(isinstance(lst,Iterable)) #可迭代对象
     8 print(isinstance(lst,Iterator)) #迭代器
     9 
    10 print(isinstance(it,Iterable))
    11 print(isinstance(it,Iterator))
  • 相关阅读:
    Android进阶篇软件下载及安装
    Android进阶篇访问Https链接
    Android进阶篇时间日期工具类
    Android进阶篇左右滑屏
    java:环境变量设置
    Android进阶篇录音
    Android进阶篇图片选择功能
    Android基础篇异步获取网络图片
    java进阶篇解压缩zip rar文件
    Android进阶篇Sqlite使用(一)
  • 原文地址:https://www.cnblogs.com/liaopeng123/p/9456260.html
Copyright © 2020-2023  润新知