摘要: 1.生成器本质上也是一种迭代器,可用__next__唤醒并执行。唯一的区别在于实现方式上,迭代器更加简洁。 用__next__唤醒并执行获取,通过for循环来获取指定数量的值。 2生成器日志调用方法(未完成) 3.内置函数 1. 2. 3. 阅读全文
posted @ 2018-03-29 15:14 Roc_Atlantis 阅读(109) 评论(0) 推荐(0) 编辑
摘要: open(f_name,'r',encoding="utf-8") 二·函数基础 1. from functools import reduce def Sum(x,y): return x+y print(reduce(Sum,[1,2,3,4,5,6])) # from functools im 阅读全文
posted @ 2018-03-26 22:31 Roc_Atlantis 阅读(209) 评论(0) 推荐(0) 编辑
摘要: Iterable:可迭代的 列表,字典,元组,字符串,集合这些可以循环的都是可迭代的。 还有一类是生成器(generator),生成器都是可迭代的。 下面的列子都是可迭代的。 迭代器:Iterator 可以被next函数调用并不断返回下一个值的对象称为迭代器。我们目前学的迭代器只有生成器。 生成器都 阅读全文
posted @ 2018-03-23 15:57 Roc_Atlantis 阅读(100) 评论(0) 推荐(0) 编辑
摘要: send 和next区别 next:唤醒并继续执行 send:唤醒并继续执行 发送信息到生成器内部。 阅读全文
posted @ 2018-03-23 14:11 Roc_Atlantis 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 生成器的创建方式 1.列表生成式。(比较简单的生成器创建,如 a = (i for i in range(10)) 2.函数生成式。 return 与 yield比较 return: 返回并结束函数。 yield:返回并暂时冻结函数,等值返回以后在继续执行(需要用next唤醒,唤醒后继续执行,指导下 阅读全文
posted @ 2018-03-22 21:31 Roc_Atlantis 阅读(125) 评论(0) 推荐(0) 编辑
摘要: def fib(max): n,a,b = 0,0,1 while n < max: print(b) #直接输出数列的值 a,b = b,a+b #b赋值给a后,a = 1,a+b 赋值给b b还是一,因为赋值后的a并没有立即参与运算。 n += 1 print(fib(15))... 阅读全文
posted @ 2018-03-22 20:43 Roc_Atlantis 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 列表生成器(简便:不需要多行代码) generator 生成器 特点:1.想要生成器里的元素不会立即产生,需要取一次才能创建一次。2.只能往前走,不能往后退。3.生成器生产完毕,继续下去会报错。 生成器循环 python3里的range 实质上是一个生成器 python2里的range 阅读全文
posted @ 2018-03-22 18:17 Roc_Atlantis 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 不用装饰器调用函数。 用有带参数的装饰器(装饰器带参数需要用嵌套函数不断返回内层函数的地址。不带函数的装饰器直接调用下面的函数名作为参数) 阅读全文
posted @ 2018-03-22 16:02 Roc_Atlantis 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 非固定参数接收传入的实参,不论是多少都会接收。(*args,**kwargs) 阅读全文
posted @ 2018-03-21 22:49 Roc_Atlantis 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 直接改变模块里面函数的功能,将login() 引入到已经实现代码功能的模块里,不符合开放封闭原则。 已经实现功能的代码块,只能被扩展,不能被修改。下面的代码实现了扩展,也实现了功能。但是还是存在着问题。 下面的代码改变了调用方式,用login调用henan等,如果存在多个模块,且别人用其他方式调用了 阅读全文
posted @ 2018-03-21 16:41 Roc_Atlantis 阅读(112) 评论(0) 推荐(0) 编辑