生成器表达式可以理解为列表推导的惰性版本:不会迫切地构建列表,而是返回一个生成器,按需惰性生成元素。也就是说,如果列表推导是制造列表的工厂,那么生成器表达式就是制造生成器的工厂。 示例 14-8 先在列表推导中使用 gen_AB 生成器函数,然后在生成器表达式中使用 >>> def gen_AB() ...
分类:
编程语言 时间:
2020-05-26 18:34:24
阅读次数:
59
简介 设计 Iterator 接口时考虑到了惰性:next(my_iterator) 一次生成一个元素。懒惰的反义词是急迫,其实,惰性求值(lazy evaluation)和及早求值(eager evaluation)是编程语言理论方面的技术术语。 re.finditer 函数是 re.findal ...
分类:
编程语言 时间:
2020-05-26 18:18:40
阅读次数:
82
一、编程范式 编程范式即编程的方法论,标识一种编程风格. 三大编程范式: 1.面向过程编程: 面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数. 2.函数式编程: "函数式编程"是一种"编程范式",也就是如何编 ...
分类:
其他好文 时间:
2020-05-24 13:55:33
阅读次数:
53
什么是函数式编程在学习lambda之前,我们先搞清楚什么是函数。我理解的函数就是输入一些东西经过一定的规则后输出。假如我们超时买苹果,苹果的单价是5元,则f(x)=5x;其中x代表我们购买苹果的重量,则苹果的重量和价格对应的一种关系就是函数。我们看看这个函数,我们关注的重点其实就是x和5x。这样我们就好理解了,函数关注的重点就是入参和对应的函数规则,其他的东西都不重要。下面我们结合一段java代码
分类:
其他好文 时间:
2020-05-22 19:18:40
阅读次数:
55
1.函数式接口:只要是函数式接口,就可以是lambda public static void main(String[] args) { Function function1 = new Function<String,String>() { @Override public String appl ...
分类:
其他好文 时间:
2020-05-22 17:15:19
阅读次数:
46
经过一个多月来的研究实践,在亲友团的帮助下,我的第一个spark程序终于上线了,现在总结下实践历程。
分类:
其他好文 时间:
2020-05-19 01:16:57
阅读次数:
64
说起开始学习这个知识的书,还要从一件故事说起。一天看到有一个分析A::new和new A()的区别的博客,然后就想测试一下这二者到底有啥区别? 于是我就敲代码Donut::new,神奇的事情发生了,居然可以用这么多类型接收,而这个类Donut仅仅是个普通的类,既没有继承也没有实现Runnable,这 ...
分类:
编程语言 时间:
2020-05-16 18:53:29
阅读次数:
68
基本概念 ? Lambda表达式是一个匿名方法,将行为像数据一样进行传递。 ? Lambda表达式的常见结构: BinaryOperator<Integer> add=(x, y) → x+y。 ? 函数接口指仅具有单个抽象方法的接口,用来表示Lambda表达式的类型。 filter: 过滤作用,f ...
分类:
编程语言 时间:
2020-05-12 13:43:50
阅读次数:
69
对于高阶组件的使用场景如果有相关经验的或者有不同的见解的希望能够在我的博客下面留言 最近在重构react组件时,学习了一些高阶组件的编写思路,其实是由高阶函数沿伸而来。一般情况我们编写一个react组件大致样子如下: class App extends Component { constructor ...
分类:
其他好文 时间:
2020-05-12 09:28:41
阅读次数:
57
1.面向对象 》类 》class 2.面向过程 》过程 》def 3.函数式编程 》函数 》def def fun(x,y): print(x) print(y)fun(1,3)#位置函数fun(y=8,x=9)#关键函数 # def test(*agrgs):#接受位置参数,转换成元组方式# pr ...
分类:
编程语言 时间:
2020-05-11 23:32:59
阅读次数:
76