python中for语句涉及的序列可以是关系表达式吗_为什么我可以在Python for循环中为迭代器和序列使用相同的名称?...

x告诉我们什么:

Python 3.4.1 (default, May 19 2014, 13:10:29)

[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> from dis import dis

>>> dis("""x = [1,2,3,4,5]

... for x in x:

... print(x)

... print(x)""")

1 0 LOAD_CONST 0 (1)

3 LOAD_CONST 1 (2)

6 LOAD_CONST 2 (3)

9 LOAD_CONST 3 (4)

12 LOAD_CONST 4 (5)

15 BUILD_LIST 5

18 STORE_NAME 0 (x)

2 21 SETUP_LOOP 24 (to 48)

24 LOAD_NAME 0 (x)

27 GET_ITER

>> 28 FOR_ITER 16 (to 47)

31 STORE_NAME 0 (x)

3 34 LOAD_NAME 1 (print)

37 LOAD_NAME 0 (x)

40 CALL_FUNCTION 1 (1 positional, 0 keyword pair)

43 POP_TOP

44 JUMP_ABSOLUTE 28

>> 47 POP_BLOCK

4 >> 48 LOAD_NAME 1 (print)

51 LOAD_NAME 0 (x)

54 CALL_FUNCTION 1 (1 positional, 0 keyword pair)

57 POP_TOP

58 LOAD_CONST 5 (None)

61 RETURN_VALUE

关键位是第2和第3部分 - 我们从x(x)加载该值,然后我们得到它的迭代器(x)并开始迭代它(28 FOR_ITER)。 Python永远不会再回来加载迭代器了。

旁白:这样做没有任何意义,因为它已经有了迭代器,正如Abhijit在他的回答中指出的那样,Python规范的7.3节实际上需要这种行为)。

当名称x被覆盖以指向列表中的每个值(以前称为x)时,Python在查找迭代器时没有任何问题,因为它永远不需要再次查看名称x来完成迭代协议。

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

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

相关文章

struts2中用interceptor实现权限控制

在jsp servlet中我们通常使用Servlet Filter控制用户是否登入, 是否有权限转到某个页面。在struts2中我们应该会想到他的拦截器(Interceptor), Interceptor在struts2中起着非常重要的作用。很多struts2中的功能都是使用Interceptor实现的。 需求&#xf…

Java实现xml与map互转

此文档中包含单层和多层嵌套情况下,xml和map集合进行互转,具体代码如下: import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry;import org.dom4j.Document; import org.dom4j.DocumentExce…

CGAL的三维点集

CGAL提供了几种处理点集的算法,从形状检测到通过标准点集处理工具进行的表面重建。 虽然这些算法不强制使用特定的数据结构,但该软件包提供了一个3D点集结构,使用户更容易处理附加属性,如法向量、颜色、标签,并在其上调…

2018年AI智商将达到多少?未来智能实验室启动第三次世界AI智商评测

来源: 人工智能学家 概要:21世纪以来,人工智能领域陆续爆发很多重要事件。其中最吸引人们眼球的,当属2016年战胜了人类围棋冠军并开始能够从0自我学习的AlphaGo。 一.人工智能能否超越人类智慧的争议 21世纪以来,人工智…

二进制函数_Go二进制文件逆向分析从基础到进阶——MetaInfo、函数符号和源码文件路径列表...

书接前文,本文主要介绍 Go 二进制文件中 Meta Information 的解析,与函数符号和源码文件路径列表的提取。最后详细介绍一下 Moduledata 这个结构。传送门:Go二进制文件逆向分析从基础到进阶——综述05Meta information>>>>5.1 Go…

学习网址

深入讲解权限: http://www.noahweb.net/mail/2/Project.htm#biaoStruts2 源码分析 http://blog.csdn.net/wl_ldy/article/details/5948779 Struts2部分源码讲解:http://code.google.com/p/struts2-src-study/source/browse/trunk/struts2-src-study--u…

七大科技巨头统治世界?

来源:亿欧智库 概要:我想无论是业内人士还是普通用户,都会思考为什么是他们成为最大的公司? 2017年秋天,随着腾讯和阿里巴巴两家中国公司市值的不断上涨,全球市值头部公司刚好是七大科技巨头(下…

vue 懒人_Vue.js 中的实用工具方法【推荐】

收集日常开发中常用到的一些工具方法, 包含 vue 的公用过滤器、公用指令等 (PS: 懒人养成记)公用自定义过滤器import Vue from vueimport moment from moment/*** filter dateFormat 时间格式化* param {String, Date} value 可被 new Date 解析的字符串* param {String} forma…

用户权限管理——DB设计篇

来源:http://www.noahweb.net/mail/2/Project.htm#biao B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端服务器检测实现,而B/S中,浏览器是每一…

oracle数据库常用的语法与复合函数

oracle查用到一些复合函数以及一些常用的方法用来快速查询数据,以下是我收集的一下常用方法,推荐给大家: 1、 当分组之后,针对某一属性值进行合并并以逗号进行分割: (1)所有版本都可使用&…

spring 事务之@transactional的使用与回滚

一、事务简单介绍 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。 1.1 事务基本要素 原子性(Atomicity): 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在…

python可视化图形界面_Python PyQt5 Designer 可视化图形界面模块

PYQT5 Designer简介强大的可视化GUI设计工具, 帮助我们快速开发PyQt.它生成UI界面为.ui文件, 通过命令将.ui转为.py文件.准备工作安装PyQt5: pip install pyqt5安装Qt工具: pip install pyqt5-tools(坑提示:一开始安装的pyqt5版本高了,结果安装QT工具的时…

雷克世界:Gyrfalcon加入芯片角斗场,又一款改变AI界的产品问世

来源:雷克世界 概要:随着人工智能产业规模扩大,众多巨头和初创公司纷纷加入人工智能芯片领域。 随着人工智能产业规模扩大,众多巨头和初创公司纷纷加入人工智能芯片领域,今天来了解一家旨在开发低成本、低功耗、高性能…

Freemarker静态化页面的使用

Freemarker 是一种基于模板的,用来生成输出文本的通用工具,所以我们必须要定制符合自己业务的模板,然后生成自己的文本(html页面,string字符串,xml文本等等)。Freemarker是通过freemarker.templ…

SessionHelper

问题描述: strut2 的织入 Session 为原始 Map 类型,没有泛型化,在添加属性时就会有一个恼人的警告。 功能: 1、安全的消除警告 2、插入时检查类型,如果不符就提前报错(免得取值时才报转换异常的错误&…

报告怎么看_体检报告怎么看? 超实用的阅读指南来了!

体检报告怎么看?超实用的阅读指南来了!要点概括除了禁食禁水可以吞口水吗?这样的问题,还有胆固醇、甘油三酯、胆红素…这些指标都是什么意思?出现升高或降低提示了怎样的身体变化?九图带你读懂!…

从基础设施的演变,看人工智能到底需要什么样的底层平台

来源:亿欧 概要:大数据、大容量存储、弹性计算和各类算法的发展,尤其是在深度学习领域的发展,带来了各类脑洞大开的创新应用。 机器学习和人工智能的时代已经到来。大数据、大容量存储、弹性计算和各类算法的发展,尤其…

前后台加解密的使用--SHA256算法 RSA算法 AES算法

SHA256算法 sha256与md5一样是散列算法,不是加密算法,不存在解密的问题,因此是不可逆的,可以通过keypassword,对密码进行加密,在后台进行比对,安全性比md5高一点,加密后生成的密文为…

性能测量工具类——TimeMeasureUtil TimeMeasureProxy

TimeMeasureUtil:做单次时间测量。 1、为了能确保 startTime 和 endTime 都正确设置,因而采用实例对象来实现。每次测量是都能判断对象是否处在正确状态。 2、该类为工具类,即使测试时产生许多对象实例也对软件无任何影响。 public class T…