函数-函数进阶-生成器调用方法

摘要: >>> a = (i for i in range(10))>>> while True:... print(next(a))...0123456789Traceback (most recent call last): File "<stdin>", line 2, in <module>Stop 阅读全文
posted @ 2019-05-28 15:21 kingforn 阅读(455) 评论(0) 推荐(0) 编辑

函数-函数进阶-斐波那契

摘要: 我们讲过,generator保存的是算法,每次调用next(g) 就计算出g 的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出stopIteration 的错误 当然,上面这种不断调用 next(g) 实在是太变态了,正确的方法是使用for循环,因为generator也是可迭代对象: 阅读全文
posted @ 2019-05-28 14:54 kingforn 阅读(495) 评论(0) 推荐(0) 编辑

函数-函数进阶-列表生成式

摘要: >>> a = list(range(10))>>> a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> a = [i+1 if i<10 else i*i for i in a]>>> a[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>>> 阅读全文
posted @ 2019-05-24 20:01 kingforn 阅读(142) 评论(0) 推荐(0) 编辑

函数-函数进阶-装饰器带参数2

摘要: user_state = Falsedef login(auth_tpye): def out(func): def inner(*args,**kwargs): global user_state db = {'kingforn': 'abc123', 'alex': 'abc!@#'} if u 阅读全文
posted @ 2019-05-24 16:08 kingforn 阅读(208) 评论(0) 推荐(0) 编辑

函数-函数进阶-装饰带参数的函数

摘要: user_state = Falsedef login(func): def inner(*args,**kwargs): global user_state db = {'kingforn': 'abc123', 'alex': 'abc!@#'} if user_state == False: 阅读全文
posted @ 2019-05-24 14:29 kingforn 阅读(202) 评论(0) 推荐(0) 编辑

函数-函数进阶-装饰器流程分析

摘要: 老王:算了,估计你也想不出来。。。学过嵌套函数没有? 你:yes,然后呢? 老王:想实现一开始你写的america = login(america)不触发你函数的执行,只需要在这个login里面再定义一层函数,第一次调用america = login(america) 用到外层login ,这个lo 阅读全文
posted @ 2019-05-24 10:56 kingforn 阅读(148) 评论(0) 推荐(0) 编辑

函数-函数进阶-装饰器

摘要: 想象一下: 你是一家视频网站的后端开发工程师,你们网站有以下几个版本: def home(): print(" 首页 ") def america(): print(" 欧美专区 ") def japan(): print(" 日韩专区 ") def henan(): print(" 河南专区 ") 阅读全文
posted @ 2019-05-24 10:12 kingforn 阅读(134) 评论(0) 推荐(0) 编辑

函数-函数进阶-闭包

摘要: def func(): n = 10 def func2(): print('func2', n) return func2 f = func() print(f) f() 执行结果 func2: 10 这就是闭包 阅读全文
posted @ 2019-05-23 09:47 kingforn 阅读(82) 评论(0) 推荐(0) 编辑

函数-函数进阶-作用域的查找空间

摘要: n = 10 def func() n = 20 print('func:',n) def func2() n = 30 print('func2',n) def func3() print('func3',n) func3() func2() func() 执行结果: func:20 func2: 阅读全文
posted @ 2019-05-23 08:18 kingforn 阅读(103) 评论(0) 推荐(0) 编辑

函数-函数进阶-命名空间

摘要: 命名空间又称名称空间 又名name space,顾名思义就是存放名字的地方,存声明名字呢?举例说明,若变量x=1,1存放在内存中,那名字x存放在哪里呢? 名称空间正是存放名字x与1绑定关系的地方 名称空间共3种,分别如下: locals:是函数内的名称空间,包括局部变量和形参 globals:全局变 阅读全文
posted @ 2019-05-22 15:37 kingforn 阅读(132) 评论(0) 推荐(0) 编辑