摘要: 一、什么是闭包? #内部函数包含对外部作用域而非全局作用域的引用 #提示:之前我们都是通过参数将外部的值传给函数,闭包提供了另外一种思路,包起来喽,包起呦,包起来哇 def counter(): n=0 def incr(): nonlocal n x=n n+=1 return x return 阅读全文
posted @ 2020-08-08 16:09 sean_wang 阅读(129) 评论(0) 推荐(0)
摘要: 1 什么是装饰器 器=》工具=》函数 装饰=》指的是为被装饰者添加新功能2、为何要用装饰器 开放封闭原则: 封闭指的是对修改源代码是封闭的 开放指的是对拓展新功能是开放的 装饰器就是一个函数,该函数就是在不修改被装饰对象源代码以及调用的方式的前提下,为被装饰对象添加额外的功能3、如何实现装饰器=》闭 阅读全文
posted @ 2020-08-08 16:06 sean_wang 阅读(94) 评论(0) 推荐(0)
摘要: 一、定义 装饰器就是闭包函数的一种应用场景 装饰器他人的器具,本身可以是任意可调用对象,被装饰者也可以是任意可调用对象。强调装饰器的原则:1 不修改被装饰对象的源代码 2 不修改被装饰对象的调用方式装饰器的目标:在遵循1和2的前提下,为被装饰对象添加上新功能 二、作用 开放封闭原则:对修改封闭,对扩 阅读全文
posted @ 2020-08-08 16:02 sean_wang 阅读(91) 评论(0) 推荐(0)
摘要: 一:名称空间:就是用来存放名字的内存空间名称空间分为三大类:1、内置名称空间:存放python解释器提供的名字 生命周期:python解释器启动则产生,python解释器关闭则销毁2、全局名称空间:顶级的名字 生命周期:开始python程序则启动,python程序运行完毕则销毁 #示例 x = 1 阅读全文
posted @ 2020-08-08 15:54 sean_wang 阅读(98) 评论(0) 推荐(0)
摘要: 一、 什么是名称空间? #名称空间:存放名字的地方,三种名称空间,(之前遗留的问题x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方) 二、名称空间的加载顺序 python test.py #1、python解释器先启动,因而首先加载的是:内置名称空间 #2、执行 阅读全文
posted @ 2020-08-08 15:47 sean_wang 阅读(80) 评论(0) 推荐(0)
摘要: 1、函数的嵌套调用:在调用一个函数的过程中又调用了其他函数 def bar(): print('from bar') def foo(): print('from foo') bar() foo() # 应用示例 def max2(x,y): if x > y: return x else: ret 阅读全文
posted @ 2020-08-08 15:20 sean_wang 阅读(218) 评论(0) 推荐(0)
摘要: 一、函数是第一类对象,即函数可以当作数据传递 #1 可以被引用#2 可以当作参数传递#3 返回值可以是函数#3 可以当作容器类型的元素 二、利用该特性,优雅的取代多分支的if def foo(): print('foo') def bar(): print('bar') dic={ 'foo':fo 阅读全文
posted @ 2020-08-08 15:16 sean_wang 阅读(156) 评论(0) 推荐(0)
摘要: 一、函数使用原则:先定义后调用 #定义阶段def foo(): print('from foo')#调用阶段foo() 函数即“变量”,“变量”必须先定义后引用。未定义而直接引用函数,就相当于在引用一个不存在的变量名 #测试一 def foo(): print('from foo') bar() f 阅读全文
posted @ 2020-08-08 14:09 sean_wang 阅读(126) 评论(0) 推荐(0)
摘要: 一、f.seek(字节个数,模式)模式有三种0:参照文件的开头1:参照当前所在的位置2:参照文件末尾的位置 # 注意:# 1、无论何种模式,都是以字节单位移动,只有t模式下的read(n)的n代表的是字符个数with open('a.txt',mode='rt',encoding='utf-8') 阅读全文
posted @ 2020-08-08 13:40 sean_wang 阅读(139) 评论(0) 推荐(0)
摘要: 一:编写函数,(函数执行的时间是随机的) import time def timmer(func): def wrapper(*args,**kwargs): start= time.time() func(*args,**kwargs) stop = time.time() print('执行时间 阅读全文
posted @ 2020-08-08 13:26 sean_wang 阅读(124) 评论(0) 推荐(0)