python-高级特性

news2024/10/7 16:17:39

文章目录

  • 1.生成式
  • 2.生成器
  • 3.闭包
  • 4.装饰器
    • (1)万能装饰器的实现
    • (2)含参数的装饰器
    • (3)多装饰器
  • 5.内置高阶函数


1.生成式

列表生成式就是一个用来生成列表的特定语法形式的表达式。是Python提供的一种生成列表的简洁形式, 可快速生成一个新的list。
普通的语法格式:[exp for iter_var in iterable]
带过滤功能语法格式: [exp for iter_var in iterable if_exp]
循环嵌套语法格式: [exp for iter_var_A in iterable_A for iter_var_B in iterable_B]

在这里插入图片描述
在这里插入图片描述

2.生成器

1.什么叫生成器?
在Python中,一边循环一边计算的机制,称为生成器:Generator。
2.什么时候需要使用生成器?
性能限制需要用到,比如读取一个10G的文件,如果一次性将10G的文件加载到内存处理的话(read方法),内存肯定会溢出;但使用生成器把读写交叉处理进行,比如使用(readline和readlines)就可以再循环读取的同时不断处理,这样就可以节省大量的内存空间。

生成器特点

  • 解耦. 爬虫与数据存储解耦;
  • 减少内存占用. 随时生产, 即时消费, 不用堆积在内存当中;
  • 可不终止调用. 写上循环, 即可循环接收数据, 对在循环之前定义的变量, 可重复使用;
  • 生成器的循环, 在 yield处中断, 没那么占cpu.

python中return关键字和yield关键字的区别?

  • return:在程序函数中返回某个值,返回之后函数不在继续执行,彻底结束。
  • yield: 带有yield的函数是一个迭代器,函数返回某个值时,会停留在某个位置,返回函数值后,会在前面停留的位置继续执行,直到程序结束

在这里插入图片描述

3.闭包

什么是闭包?如何实现闭包?
闭包就是指有权访问另一个函数作用域中的变量的函数。
创建闭包最常见方式,就是在一个函数内部创建另一个函数。
常见形式: 内部函数使用了外部函数的临时变量,且外部函数的返回值是内部函数的引用。
闭包的一个常用场景就是装饰器。

在这里插入图片描述

4.装饰器

什么是装饰器?
装饰器指的是工具,而程序中的函数就是具备某一功能的工具,所以装饰器指的是为被装饰器对象添加额外功能的工具/函数。(可理解为照片与相框的关系
装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象。
装饰器经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等应用场景。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(1)万能装饰器的实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)含参数的装饰器

在这里插入图片描述
在这里插入图片描述

(3)多装饰器

在这里插入图片描述
在这里插入图片描述

5.内置高阶函数

函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返
回一个函数!Python对函数式编程提供部分支持。
把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/621956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023.6.7小记——什么是FPGA?

最近打算开始继续做一些个人分享,已经太久时间没有写文章了,感觉这样下去肯定不是个好事,当程序员当然是要保持分享~ 标题就暂时先以每天我认为最重要的一点来取,内容不仅限于此。 1. 什么是FPGA? 全称是Field-Progra…

PCL 点云均值漂移算法(MeanShift)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 均值漂移算法是一种非常经典的层次聚类方式,已在二维图像中得到了广泛的应用。这里我们也已二维图像为例来阐述其整个计算过程: 算法基本思想:如下图所示,左侧为实际的图像特征的分布,右侧为基于图像特征分布计…

Linux操作系统——第二章 进程控制

目录 进程创建 fork函数初识 fork函数返回值 写时拷贝 fork常规用法 fork调用失败的原因 进程终止 进程退出场景 进程常见退出方法 _exit函数 exit函数 return退出 进程等待 进程等待必要性 进程等待的方法 wait方法 waitpid方法 获取子进程status 进程程序…

接口测试框架实战 | 通用 API 封装实战

接口测试仅仅掌握 Requests 或者其他一些功能强大的库的用法,是远远不够的,还需要具备能根据公司的业务流程以及需求去定制化一个接口自动化测试框架的能力。所以,接下来,我们主要介绍下接口测试用例分析以及通用的流程封装是如何…

火龙果MM32F3273G8P开发板MindSDK开发教程3 - Sysclk的配置

Sysclk的配置 1、时钟初始化流程 一般流程为startup_mm32f3273g.s中调用system_mm32f3273g.c中的SystemInit函数完成系统时钟的初始,而system_mm32f3273g.c中函数是空的。 原来MindSdk时钟初始化的流程放到了clock_init.c中。 2、采用外部高速时钟源 先弄清几个…

Effective第三版 中英 | 第二章 创建和销毁对象 | 通过私有构造器强化不可实例化的能力

文章目录 Effective第三版前言第二章 创建和销毁对象通过私有构造器强化不可实例化的能力 Effective第三版 前言 大家好,这里是 Rocky 编程日记 ,喜欢后端架构及中间件源码,目前正在阅读 effective-java 书籍。同时也把自己学习该书时的笔记…

文本三剑客 之 grep

目录 一.grep 1.grep常用选项命令选项 2.grep 命令选项 3.简单的正则表达式 二.sort 命令 三.uniq 去重 四 .语法格式: tr 选项 参数 五.快速裁剪命令——cut: 六.split 文件拆分 七.文件合并——paste 一.grep 文本三剑客了之一,对文本内容进行…

网络通信 --- HTTP 协议初识

目录 🌲一、HTTP 协议是什么 🌳二、HTTP协议格式 🦪1.抓包工具的使用(以 Fiddler 为例) 🍣2. 抓包工具的原理 (以 Fiddler 为例) 🍤3. 抓包结果 🍥① HTTP 请求(request) 🥮②HTTP响应(re…

chatgpt赋能python:Python中的平均值如何计算?

Python中的平均值如何计算? 在Python编程中,求取列表、元组或数据集合的平均值是一个相当常见的操作。幸运的是,Python内置的统计模块提供了方便的方法去实现这个操作。在这篇文章里,我们将探讨计算平均值的方法,帮助…

Unity制作二次元卡通渲染角色材质——5、脸部的特殊处理

Unity制作二次元材质角色 回到目录 大家好,我是阿赵。 这里继续讲二次元角色材质的制作。这次是讲头部的做法。 1、脸部 之前在分析资源的时候,其实已经发现了这个模型的脸部法线有问题,导致在做光照模型的时候,脸部很奇怪。 把f…

阅读ConcurrentHashMap源码,我学到了什么?

文章目录 ConcurrentHashMap怎样保证线程安全的put元素的流程具体对于红黑树是怎样保证线程安全的如何并发安全的初始化一个数组如何统计存储元素个数的怎样进行多线程扩容的 首先说明, 本篇分析基于jdk1.8. ConcurrentHashMap怎样保证线程安全的 ConcurrentHashMap主要是通过…

Java:字符流

字符流的底层其实就是字节流。 字符流字节流字符集 结构体系: 1.特点 输入流:一次读一个字节,遇到中文时,一次读多个字节。 输出流:底层会把数据按照指定的编码方式进行编码,变成字节再写到文件中。 2.使用场景 对于纯文本…

AI实战营第二期 笔记5——MMPretrain代码课

文章目录 摘要MMPreTrain实战安装推理 OR 使用API数据集训练与测试微调 摘要 MMPretrain 是一个全新升级的预训练开源算法框架,旨在提供各种强大的预训练主干网络, 并支持了不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和 MMSel…

chatgpt赋能python:Python开立方函数math:让数学计算更加简单

Python开立方函数math:让数学计算更加简单 Python作为一种高级编程语言,提供了丰富的数学计算功能,其中就包括了开立方函数math。本篇文章将详细介绍math开立方函数在Python中的使用方法及其优点。 什么是开立方函数? 开立方函…

chatgpt赋能python:Python开发BI,助力企业数据驱动决策

Python开发BI,助力企业数据驱动决策 随着企业数据规模的呈现爆炸式增长,传统的Excel等表格计算工具已经无法满足业务需求,因此,企业需要更加全面和强大的方法来进行数据分析和展示。此时,BI(全称Business …

css蓝桥杯--电影院排座位

目录 一、介绍二、准备三、⽬标四、代码五、知识点六、完成 一、介绍 随着⼈们⽣活⽔平的⽇益提升,电影院成为了越来越多的⼈休闲娱乐,周末放松的好去处。各个城市的电影院数量也随着市场的需求逐年攀升。近⽇,⼜有⼀个电影院正在做着开张前…

chatgpt赋能python:Python强制关闭程序的解决方案

Python 强制关闭程序的解决方案 在Python开发过程中,难免会遇到程序卡死,无响应等问题,这时候如果无法正常退出程序,就需要进行强制关闭。本篇文章将介绍Python强制关闭程序的几种解决方案。 方法一: 使用系统命令 在Linux或Ma…

【Java】JavaWEB核心要点总结:64

文章目录 1. TCP 和 UDP的异同2. TCP为什么要三次握手 两次不行吗3. get post put 请求方式有什么区别4. 什么是XXS攻击 如何避免5. 什么是 CSRF 攻击,如何避免 1. TCP 和 UDP的异同 TCP(Transmission Control Protocol)和UDP(Use…

typedef 和 # define 用法区别

typedef 和 # define 用法区别 前言1. 原理不同1.1 typedef int * int_ptr;与#define int_ptr int * 详细讲解 2. 功能不同3. 作用域不同 前言 博主在牛客网上看到了一道有关typedef和# define题目。发现有很多初学的小伙伴对两者的用法不是特别清楚,所以博主在这总…

python内存

在python中,一切都是对象。Python从设计之初就是一门面向对象的语言,它有一个重要的概念,即一切皆对象。 Java虽然也是面向对象编程的语言,但是血统没有Python纯正。比如Java的八种基本数据类型之一int,在持久化的时候…