函数可以访问其外部作用域中定义的任何名称,并且可以修改该作用域中名称引用对象(如果它们是可变类型)。
在学习编程的过程中,我们常常遇到一些复杂而又难以理解的概念。这就需要我们不断地努力学习,探索更深层次的知识。今天,我想跟大家分享一下我在参加2021春季CS61A实验六时所学到的内容。
成都创新互联公司成都企业网站建设服务,提供成都网站设计、成都网站制作、外贸网站建设网站开发,网站定制,建网站,网站搭建,网站设计,自适应网站建设,网页设计师打造企业风格网站,提供周到的售前咨询和贴心的售后服务。欢迎咨询做网站需要多少钱:028-86922220
本次实验主要涉及四个方面的内容:非局部变量、可变性、迭代器和生成器。下面我将分别从这四个方面进行介绍。
首先是非局部变量。在Python中,函数可以访问其外部作用域中定义的任何名称,并且可以修改该作用域中名称引用对象(如果它们是可变类型)。这就是所谓的“闭包”机制。当一个内嵌函数引用了它外围范围内定义了但不属于它自己名字空间里没有被声明为全局名或者 局部名 的 变量 ,那么称这种情况为闭合式运算(Closure),简称闭包(Closure) 。通过使用nonlocal关键字来指定一个标识符应该被重新绑定到其最近封闭作用域之一上,在Python 3.0中引入了对闭包的支持。
其次是可变性。在Python中,有些对象是可变的,比如列表和字典等容器类型。而有一些对象则是不可变的,比如数字、字符串和元组等类型。这就涉及到一个非常重要的概念——“浅拷贝”与“深拷贝”。浅拷贝只复制原始对象中存储的引用,而不会创建新的对象;深拷贝则会递归地复制所有子对象,并创建全新的父级容器。
接下来是迭代器(Iterator)。简单来说,迭代器就是一种访问集合元素的方式。可以使用for循环或者while循环进行遍历操作。在Python中,可以通过实现__iter__()方法和__next__()方法来自定义迭代器类。
最后是生成器(Generator)。生成器本身也属于迭代器类型,在使用时具备惰性计算特点。即只有当需要取值时才会被计算,并且每个值仅能被获取一次。通过yield关键字将函数转换为生成器函数,在调用该函数时并不立即执行其中语句块内代码,而返回一个生成器作为结果。
总之,在学习编程过程中我们需要掌握各种各样难以理解但却非常重要的概念与技能。非局部变量、可变性、迭代器和生成器就是其中的一些重点内容。希望大家可以通过本文学到更多关于Python编程语言的知识,也希望大家在以后的学习中不断探索,努力提升自己的技能水平!
本文题目:2021春季CS61A实验六:非局部变量、可变性、迭代器和生成器
网站路径:http://www.shufengxianlan.com/qtweb/news25/139825.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联