Python中关于@修饰符、yeild关键词、next()函数的基本功能简述

news2025/6/9 17:45:08

关于@修饰符:其实就是将@修饰符下面的函数当成参数传给它上面的函数。

def a(x):
  print('a')

@a

def b():
  print('b')

其效果等价为:

def a(x):
  print('a')

def b():
  print('b')

a(b())

有个记忆诀窍,@的下面哪个函数最近,谁就是儿子,@谁就是喊谁爸爸,布局如果是 a @a b,那就是b喊a爸爸,即a(b()),爸爸保护儿子。(如下图:)

@等同于喇叭,他后面的哪个儿子(函数)离他最近才能用它召唤爸爸,并且他的爸爸只要在喇叭@之上就行,不管有多远,爸爸总会回来保护儿子。

 @+函数名,不可以加(),喊爸爸要用敬称。禁用@a(),只能用@a

PS:@行后面只能跟函数(不要试图在@后加其他语句,如print等,会报错)如下图:

关于yield关键字:他有2个基本功能:return 返回功能+生成器功能

return返回功能就显示它必须用在函数内部,语句执行到它时跳出该函数并返回值。

 见下图:

yield与return第一个不同之处:大家可以看到,yield相当于return,但是他不是直接返回值,而是返回一个生成器(可以理解为一个内存卡),生成器内部的数据只能用for循环之类的读卡器才能读取。 

yield与return第二个不同之处:yield其实是个中断点,可以通过再次访问读取下一个值,而return是个断点,见下图,如将yield换成return,那么返回的只能是第一个值,函数内部的运行到第一个return就结束了,无论你用for循环读取几次。

 另外,yield常常跟next()函数入对出双,因为,next就是读卡器。用法见下图:

 大家可以看到,next的访问,都从中断点后继续进行访问,若生成器已被读完,继续读取则报错。

ps:yield生成器不是一开始就含括了所有返回值,而是通过访问到某个值才在生成器中添加该值,详见下图:

 

 

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

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

相关文章

Windows环境下使用MySQL:实现自动定时备份

一、编写备份脚本 1 2 3 4 5 6 7 8 9 rem auther:www.yumi-info.com rem date:20230209 rem ******MySQL backup start******** echo off forfiles /p "E:\mysql\MySQL BackUp" /m backup_*.sql -d -30 /c "cmd /c del /f path" set "Ymd%date:~0,4%…

[SSD固态硬盘技术 7] 固件概述和固件升级

固件英文叫Firmware,就是“固化在硬件中的软件”,不太恰当但是毕竟好理解的就是:固件就是硬盘的操作系统。固件Firmware是安装在硬盘的一个小记忆芯片上的,用于引导硬盘工作。其担任着一个系统最基础最底层的工作。对硬盘固件&…

2023 AIME 答案与解析 - 第一期

这里放广告 原题目 Five men and nine women stand equally spaced around a circle in random order. The probability that every man stands diametrically opposite a woman is where and are relatively prime positive integers. Find 绿树教育中心独家解析 先选取 5 对座…

知道什么是“事件冒泡“和“事件捕获“吗?那该怎么阻止事件冒泡呢

1. 事件冒泡与事件捕获 事件冒泡和事件捕获分别由微软和网景公司提出&#xff0c;这两个概念都是为了解决页面中事件流&#xff08;事件发生顺序&#xff09;的问题。 <div id"outer"><p id"inner">Click me!</p> </div>上面的代码…

【MySQL Shell】8.7 InnoDB ClusterSet 的受控切换

受控切换使选定的副本集群成为 InnoDB ClusterSet 部署的主集群。在受控切换过程中&#xff0c;确保了数据的一致性。该过程验证所选副本集群是否与主集群同步&#xff08;如果存在复制延迟&#xff0c;这可能意味着需要短时间的等待&#xff09;&#xff0c;然后使该集群成为 …

masscan的常用命令记录

目录 masscan介绍 常见参数 常见命令 输出格式 案例测试 masscan介绍 默认情况下&#xff0c;masscan的发包速率是100每秒&#xff0c;可以通过 ‘–rate’ 命令设置发包速率。 常见参数 --top-port 100&#xff1a;扫描100个常⻅端⼝ --adapter-ip&#xff1a;指定发包…

fwknop的安装和使用测试

SAP名为单包授权&#xff0c;是一种认证方法&#xff0c;它是一种端口敲门的方法&#xff0c;是之前早起端口敲门的升级版本。目的是为了隐藏服务端口&#xff0c;防止DOS等其他网络攻击&#xff0c;保证服务端的安全。SPA的具体定义这里不细说&#xff0c;网上有太多的资料&am…

微信小程序常用组件

文章目录微信小程序常用组件buttoniconimagescroll-viewswipercheckboxaudiovideo微信小程序常用组件 button 简单使用 wxml <view class"container"><button type"default">default</button><button type"default" siz…

配置与管理Web服务器

IIS是一个非常重要的Web服务器组件&#xff0c;包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器&#xff0c;分别用于网页浏览、文件传输、新闻服务和邮件发送。 Web服务的工作原理 HTTP是应用级的协议&#xff0c;主要用于分布式、协作的信息系统。HTTP协议是通用的、无状…

第二章:创建虚拟机

创建Windows server&#xff1a;首先第一步就是打开我们的vm&#xff0c;然后找到上一章讲的主页图标创建新的虚拟机。点击这上面类似的&#xff0c;然后转站。博文地址&#xff1a;https://blog.csdn.net/ryduijftgvhj/article/details/127934939?spm1001.2014.3001.5502视频…

工作进入第七年,开始幻想四十岁的生活

2022年度总结&#xff0c;推迟了一些时间&#xff0c;但终究还是来了&#xff0c;忙里偷闲。 突然发现自己很久没有更新文章了&#xff0c;主要是因为自己换了部门&#xff0c;调整了技术方向&#xff0c;对于新技术不知道该怎么写。 2022年&#xff0c;那就依旧从工作、生活…

今天面了一个来华为要求月薪25K,明显感觉他背了很多面试题...

最近有朋友去华为面试&#xff0c;面试前后进行了20天左右&#xff0c;包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说&#xff0c;80%的人都会栽在第一轮面试&#xff0c;要不是他面试前做足准备&#xff0c;估计都坚持不完后面几轮面试。 其实&…

Pywirt:一款基于Python的Windows安全应急响应工具

关于Pywirt Pywirt是一款基于Python开发的网络安全工具&#xff0c;该工具专门针对Windows操作系统设计&#xff0c;可以帮助广大研究人员使用winrm并通过在Windows操作系统上收集各种信息来加快安全事件应急响应的速度。 该工具已在Windows 10操作系统上进行过完整测试。 功…

DVWA—CSRF 跨站请求伪造

注意&#xff1a; 1、这里对XSS(Stored)关卡不熟悉的可以从这里去看http://t.csdn.cn/ggQDK 2、把难度设置成low 一、概述 1、定义 跨站请求伪造&#xff0c;攻击者利用服务器对用户得新人&#xff0c;从而欺骗受害者去服务器上执行受害者不知晓得请求。 2、场景 攻击者会伪…

Fluid-数据编排能力原理解析

前言本文对Fluid基础功能-数据编排能力进行原理解析。其中涉及到Fluid架构和k8s csi driver相关知识。建议先了解相关概念&#xff0c;为了便于理解&#xff0c;本文使用JuiceFS作为后端runtime引擎。原理概述Fuild数据编排能力&#xff0c;主要是在云原生环境中&#xff0c;能…

FEC原理与操作及BigTao机框装机说明

一、FEC原理与操作​ 1.FEC 原理简介 ​ 前向纠错&#xff08;英语&#xff1a;forward error correction&#xff0c;缩写FEC&#xff09;或信道编码&#xff08;英语&#xff1a;channel coding&#xff09;是一种在单向通信系统中控制传输错误的技术&#xff0c;通过连同数…

2023年十款开源测试开发工具推荐!

今天为大家奉献一篇测试开发工具集锦干货。在本篇文章中&#xff0c;将给大家推荐10款日常工作中经常用到的测试开发工具神器&#xff0c;涵盖了自动化测试、性能压测、流量复制、混沌测试、造数据等。 1、AutoMeter-API 自动化测试平台 AutoMeter 是一款针对分布式服务&…

环境变量与命令行参数详解

问题引入 ​ 我们先来看一段简单的死循环代码&#xff1a; int main() {while(1){printf("i am running!\n");sleep(1);}return 0; }​ 我们将其运行编译并生成为可执行文件 myproc &#xff0c;当我们要运行它的时候&#xff0c;都得在这个可执行文件前面加一个 .…

【C++】 类和对象 (下)

文章目录&#x1f4d5;再谈构造函数1. 构造函数体赋值2. 初始化列表3. explicit 关键字&#x1f4d5;static 成员1. 概念2. static 成员变量3. static 成员函数&#x1f4d5; 友元1. 友元函数2. 友元类&#x1f4d5;内部类&#x1f4d5;编译器优化&#x1f4d5;再谈构造函数 1…

Python traceback模块:获取异常信息

除了使用 sys.exc_info() 方法获取更多的异常信息之外&#xff0c;还可以使用 traceback 模块&#xff0c;该模块可以用来查看异常的传播轨迹&#xff0c;追踪异常触发的源头。下面示例显示了如何显示异常传播轨迹&#xff1a;classSelfException(Exception): pass defmain(): …