Python 函数式编程

Python 支持函数式编程,它是一种编程范式。我把它理解为可以将函数作为参数一样在函数间相互传递,十分的灵活。

1.作为方法参数

def add(x,y,f):
    return f(x)+f(y)

print(add(10,-10,abs))

# ~ >>20

上面的例子将 abs 求绝对值的函数传入到 add 函数中,实现了绝对值相加的效果.如果我想 x、y 在求平方后再相加,可以自己写一个函数传入

def add(x,y,f=abs):
    return f(x)+f(y)
def pow2(x):
    return x*x
print(add(10,-10,pow2))

# ~ >> 200

2.作为返回值

# return function
def lazy_sum(*args):
    def sum():
       return reduce(lambda x,y:x+y,args)
    return sum

s=lazy_sum(1,2,3,4,5)
print(s)
print(s())

# ~ >> .sum at 0x10069d0d0>
# ~ >> 15

lazy_sum 是一个求和的函数,但它的返回值并不是一个数字,而是一个求和函数,需要你当作函数运行时才执行。

Python 在学习的过程中最让我着迷的是它的灵活性:动态类型,函数式编程,返回元组。Java 确实更适合大团队使用,约束性更强,让你知道如何当好一名程序员。但 Python 更能让你体会到作为一个创作者的快乐,写了几年代码,最难受的是自己不能完全独立的实施自己想法,把编程作为自己提升工作、生活效率的方法,希望 Python 的学习能解决我的真实问题。

你可能感兴趣的:(Python 函数式编程)