day23生成器就是一个函数,这个函数内包含有yield这个关键字。生成器与return有何区别?return 只能返回一次函数就彻底结束了,而yieId能返回多次。yield到底干了什么事情:yield把函数变成迭代器。总结yield的功能:相当于把__next__ 和 __next__ 方法封装
day23判断是否是可迭代的:只要对象本身有__iter__方法,那他就是可迭代的对象d = {"a": 1, "b": 2, "c": 3}d.__iter__() # 有这个方法就表示是可迭代对象 ,等同于 iter(d)i
day22为什么要用装饰器及开放封闭原则什么是装饰器装饰着:可调用对象-是函数被装饰着:可调用对象-也是函数分为 无参装饰器 和 有参装饰器例子:如下函数:import time def index(): time.slee
day21闭包:在内嵌函数中,首先必须是内部定义的函数,该函数包含对外部作用域而不是全局作用域名字的引用如下例子:x = 100 # 全局作用域名字 def f1(): x =
day21def foo(): print("foo") print(foo) # 打印出对象地址 # 函数可以被赋值 f = fo
day21名称空间与作用域名称空间可分为3种:内置名称空间:像print,max,len,import这样内置在解释器中的的,在python启动时便已加载,可随处调用全局名称空间:针对于当前文件而言,可在当前文件随处调用局部名称空间:针对于函数内部而言,可在函数内部调用,函数外调用不到作用域可分为2
day20为什么要用函数: 解决代码重用问题 统一维护 程序的组织结构清晰,可读性强不用函数: 代码冗余
python学习日记-day19文件操作流程 3步:1. 打开文件 open()2. 操作文件 read(), write() 3. 关闭文件 close()-
python学习日记-day18问题:当你在notepad++中写入一个字符如“国”发生了什么?当“国”写入notepad++时,该字符便以unicode编码在内存中存储,当按下保存时会根据notepad++指定的编码(notepad++默认为UTF-8)从unicode转到UTF-8存到硬盘;当打
# 需求:三级菜单,b返回上级,q退出 provice = { "四川省": { &q