Python 中的高阶函数

python 对函数式编程(Functional Programming)的重要支持方式就是允许把函数本身作为参数传入另一个函数,还允许返回一个函数。由此可以引申出高阶函数(Higher-order function)

python @property

python 中的 @property 是一个内置装饰器,用来将方法的调用直接转换为类似属性访问的形式

e.g:

1
2
3
4
5
6
7
8
9
10
11
12
13
class Student(object):

@property
def score(self):
return self._score

@score.setter
def score(self, value):
if not isinstance(value, int):
raise ValueError('score must be an integer!')
if value < 0 or value > 100:
raise ValueError('score must between 0 ~ 100!')
self._score = value

Python 中的 generator

一般用生成斐波那契数列做例子:

1
2
3
4
5
6
def fab(max): 
n, a, b = 0, 0, 1
while n < max:
print b
a, b = b, a + b
n = n + 1

这段代码打印斐波那契数列中的前Max项–问题在于只能使用 print 来输出,代码的复用性不高。

Java 序列化

Java 序列化是把Java对象转换为字节序列的过程,相反,反序列化是指把字节序列恢复为Java对象的过程。Java序列化有助于将Java对象文件化,在JVM退出之后也能持久保存,而且序列化的二进制文件也有助于两个Java进程进行通讯。