返回顶部
首页 > 资讯 > 后端开发 > Python >第一类对象(函数),闭包及迭代器
  • 458
分享到

第一类对象(函数),闭包及迭代器

函数第一类对象 2023-01-30 23:01:34 458人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

第一类对象     函数对象对象可以像变量一样进行赋值     还可以作为列表的元素进行使用     可以作为返回值返回     可以作为参数进行传递 def wrapper(): def inner():

第一类对象

    函数对象对象可以像变量一样进行赋值

    还可以作为列表的元素进行使用

    可以作为返回值返回

    可以作为参数进行传递

def wrapper():
    def inner():
        print("alex")
    return inner  # 可以返回函数名
ret = wrapper()
ret()  # 在函数外访问函数内的函数

 

闭包

 闭包(函数的嵌套)

    内层函数对外层函数中的变量的使用

    好处:

        1. 保护变量不被侵害

        2. 让一个变量常驻内存

    如何通过代码查看一个闭包

    __closure__: 有东西就是闭包. 没东西就不是闭包

def wrapper():
    name = "peter"
    def inner():
        print(name)
    print(inner.__closure__)  #是闭包
# 查看是否是闭包. 有内容就是闭包, 没有内容就不是闭包
    inner()
wrapper()

迭代器

 固定的思路: for循环

    一个数据类型中包含了__iter__函数表示这个数据是可迭代的

    dir(数据): 返回这个数据可以执行的所有操作

print("__iter__" in dir(lst)) # 是True
it = lst.__iter__()  # 拿到的是迭代器 <list_iterator object at 0x0000000001DCC160>

    判断迭代器和可迭代对象的方案(野路子)

    __iter__            可迭代的

    __iter__  __next__  迭代器

 

    判断迭代器和可迭代对象的方案(官方)

    from collections import Iterable, Iterator

    isinstance(对象, Iterable) 是否是可迭代的

    isinstance(对象, Iterator) 是否是迭代器

lst = ["a","b","c"]
print(isinstance(lst, Iterable)) # xxx是否是xxx类型的. True
print(isinstance(lst, Iterator)) # False
it = lst.__iter__()  # 迭代器一定可迭代,  可迭代的东西不一定是迭代器
print(isinstance(it, Iterable)) # xxx是否是xxx类型的. True
print(isinstance(it, Iterator)) # True

 


    模拟for循环

lst= ["a","b","c"]
it = lst.__iter__()# 拿迭代器
while 1:
    try:
        it.__next__()
    except StopIteration:
        break

    特征:

        1. 省内存(生成器)

        2. 惰性机制

        3. 只能向前. 不能后退

     作用:

    统一了各种数据类型的遍历

 

--结束END--

本文标题: 第一类对象(函数),闭包及迭代器

本文链接: https://lsjlt.com/news/180434.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 第一类对象(函数),闭包及迭代器
    第一类对象     函数对象对象可以像变量一样进行赋值     还可以作为列表的元素进行使用     可以作为返回值返回     可以作为参数进行传递 def wrapper(): def inner(): ...
    99+
    2023-01-30
    函数 第一类 对象
  • python 第一类对象 闭包 迭代器
      def fn():     print("我叫fn") fn() print(fn)## <function fn at 0x0000000001D12E18> fn() gn = fn #函数名可以进行赋值 ...
    99+
    2023-01-30
    第一类 对象 迭代
  • Python函数二(函数名,闭包,迭代器
    函数名的使用: 函数名可以作为值,赋值给变量。 函数名可以作为参数传参给函数。 函数名可以作为返回值。 函数名可以作为元素存储在容器里。 闭包:在嵌套函数内,使用外层局部变量(非全局变量)就是一个闭包,闭包可以多层嵌套。闭包的优点: ...
    99+
    2023-01-30
    函数 迭代 Python
  • python迭代、可迭代对象、迭代器及生
    迭代 通常意义上的迭代是指:重复执行一系列运算,从前面的量依次推出后面的量的过程,每一次迭代的结果,会作为下一次迭代的初始值。 在c、c++、java等编程语言中的for循环语句,就是一个迭代过程,例如: for(int i=0;i&l...
    99+
    2023-01-30
    迭代 器及 对象
  • Python函数名应用/闭包/迭代器/
    1. 函数名的应用.   函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量.     1. 函数名的内存地址   def func(): print("呵呵") print(func) # ...
    99+
    2023-01-31
    函数 迭代 Python
  • Python函数对象与闭包介绍
    目录一 函数对象1.1 函数可以被引用1.2 函数可以作为容器类型的元素1.3 函数可以作为参数传入另外一个函数1.4 函数的返回值可以是一个函数二 闭包函数2.1 闭与包2.2 闭...
    99+
    2024-04-02
  • 怎样理解Python迭代对象和迭代器以及生成器
    这篇文章将为大家详细讲解有关怎样理解Python迭代对象和迭代器以及生成器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在了解Python的数据结构时,容器(container)、可迭代对象...
    99+
    2023-06-17
  • Python容器、可迭代对象、迭代器及生成器这么应用
    这篇文章主要讲解了“Python容器、可迭代对象、迭代器及生成器这么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python容器、可迭代对象、迭代器及生成器这么应用”吧!一、容器1.什...
    99+
    2023-06-29
  • 一文搞懂​​​​​​​python可迭代对象,迭代器,生成器,协程
    目录设计模式:迭代python:可迭代对象和迭代器为什么要有生成器?python的生成器实现协程设计模式:迭代 迭代是一种设计模式,解决有序便利序列的问题。通用的可迭代对象需要支持d...
    99+
    2024-04-02
  • Python函数对象与闭包怎么使用
    本篇内容介绍了“Python函数对象与闭包怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一 函数对象函数对象指的是函数可以被当做&a...
    99+
    2023-06-30
  • JavaScript类数组和可迭代对象如何实现
    本篇内容介绍了“JavaScript类数组和可迭代对象如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • Python中for循环可迭代对象迭代器及生成器源码学习
    目录问题:1. 迭代1.1 可迭代对象Iterable1.2 迭代器Iterator1.3 for循环1.3.1 iter()方法和next()方法1.3.2 iter()和__it...
    99+
    2024-04-02
  • JS封闭函数、闭包、内置对象知识点整理
    本篇内容主要讲解“JS封闭函数、闭包、内置对象知识点整理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS封闭函数、闭包、内置对象知识点整理”吧!一、变量作用域...
    99+
    2024-04-02
  • 怎么理解关于python函数对象与闭包
    本篇内容介绍了“怎么理解关于python函数对象与闭包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  一、函数对象  在 Python 中...
    99+
    2023-06-01
  • JavaScript详解类数组与可迭代对象的实现原理
    目录可迭代对象(Iterable object)Symbol.iterator把对象本身构造成迭代器String也是可迭代的String的迭代器类数组对象和可迭代对象Array.fr...
    99+
    2024-04-02
  • python 迭代器和iter()函数详解及实例
    python中迭代器和iter()函数 迭代器为类序列对象提供了一个类序列的接口。python的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象。迭代器用起来很灵巧,你可以迭代...
    99+
    2022-06-04
    详解 函数 实例
  • python函数如何返回一个对象类型
    python使用range函数返回对象类型,具体方法如下:range函数语法:range(start, stop[, step])range函数使用方法:print(range(10))range(0,10)...
    99+
    2024-04-02
  • C++类与对象及构造函数析构函数基础详解
    目录C++类与对象类的定义对象的创建构造函数和析构函数访问修饰符继承多态成员变量与成员方法总结C++类与对象 C++是一门面向对象的编程语言。在C++中,我们可以利用类来创建对象,...
    99+
    2023-05-16
    C++类对象函数 c++ 构造析构函数
  • C++ 成员函数详解:对象方法的容器兼容性和迭代器支持
    成员函数是定义在类上下文中,与对象相关联的函数,可访问对象数据和方法。为了使其与容器兼容,自定义类必须提供赋值运算符、相等和不相等运算符、比较运算符。此外,为了支持迭代器,类应提供返回指...
    99+
    2024-04-29
    c++ 成员函数 标准库
  • C++类、对象、构造函数及析构函数怎么定义使用
    这篇文章主要介绍“C++类、对象、构造函数及析构函数怎么定义使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++类、对象、构造函数及析构函数怎么定义使用”文章能帮助大家解决问题。C++类与对象C...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作