摘要: # 生成器:自定义的迭代器对象 # -- 就是用函数语法来声明生成器,用yield关键字取代return关键字来返回值,参数没有多少变化 # 总结:有yield关键字的函数,函数名() 不是调用函数,而是生成得到 生成器对象,生成器对象就是迭代器对象,可以通过 __next__() 进行取值 # 执行流程: def fn(): yield 1 yield 3 ... 阅读全文
posted @ 2019-04-29 16:03 挺锅锅 阅读(133) 评论(0) 推荐(0) 编辑
摘要: # 给可迭代器对象及迭代器对象添加迭代索引 阅读全文
posted @ 2019-04-29 16:02 挺锅锅 阅读(145) 评论(0) 推荐(0) 编辑
摘要: # 迭代器对象: 可以不用依赖索引取值的容器# 可迭代对象:可以通过某种方法得到迭代器对象 # 迭代器优点:可以不用依赖索引取值# 迭代器缺点:只能从前往后依次取值 可迭代对象 # 可迭代对象:有__iter__()方法的对象是可迭代对象,可迭代对象调用__iter__()得到迭代器对象 #思考: 阅读全文
posted @ 2019-04-29 16:01 挺锅锅 阅读(165) 评论(0) 推荐(0) 编辑
摘要: # 装饰器:满足开放封闭原则的一个闭包应用 # @outer语法来调用outer,规定传入被装饰的函数对象,所以参数固定为一个,接受被装饰的函数对象def outer(func): # 不能确定被装饰的函数的参数:来者不拒,用可边长来接受 def inner(*args, **kwargs): pa 阅读全文
posted @ 2019-04-29 15:14 挺锅锅 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 装饰器:就是闭包(闭包的一个应用场景) -- 把要被装饰的函数作为外层函数的参数通过闭包操作后返回一个替代版函数 优点: -- 丰富了原有函数的功能 -- 提高了程序的可拓展性 # 装饰器:满足开放封闭原则的一个闭包应用 # 使用装饰器(outer),得到新功能(inner) # 用被装饰的函数名去 阅读全文
posted @ 2019-04-29 09:11 挺锅锅 阅读(105) 评论(0) 推荐(0) 编辑
摘要: # closure:被包裹的函数,称之为闭包 # 完整的闭包结构:1.将函数进行闭包处理;2.提升函数名的作用域 # 案例:延迟加载 阅读全文
posted @ 2019-04-29 08:49 挺锅锅 阅读(146) 评论(0) 推荐(0) 编辑
摘要: # 作用:将局部的变量提升为嵌套局部变量# 1.必须有同名嵌套局部变量,就是统一嵌套局部与局部的同名变量# -- 如果局部想改变嵌套局部变量的值(发生地址的变化),可以用nonlocal声明该变量 阅读全文
posted @ 2019-04-29 08:46 挺锅锅 阅读(406) 评论(0) 推荐(0) 编辑
摘要: # 作用:将局部的变量提升为全局变量# 1.全局没有同名变量,直接提升局部变量为全局变量# 2.有同名全局变量,就是统一全局与局部的同名变量# -- 如果局部想改变全局变量的值(发生地址的变化),可以用global声明该变量 # 没有global修饰,num就是自己局部的变量 # 有global修饰 阅读全文
posted @ 2019-04-29 08:45 挺锅锅 阅读(437) 评论(0) 推荐(0) 编辑