Python 函数式编程
函数式编程语言是专门设计用于处理符号计算和列表处理应用的。函数式编程基于数学函数。一些流行的函数式编程语言包括:Lisp,Python,Erlang,Haskell,Clojure等。
函数式编程的特点
函数式编程的最突出特点如下:
- 函数式编程语言是基于使用条件表达式和递归来执行计算的数学函数的概念设计的。
-
函数式编程支持高阶函数和延迟求值特性。
-
与面向对象编程类似,函数式编程语言支持流行的概念,如抽象、封装、继承和多态性。
函数式编程的优势
下面是优势:
模块化 - 它迫使你将问题分解为小块。程序结果更模块化。指定和编写只做一件事的小函数比执行复杂转换的大函数更容易。小函数也更容易阅读和检查错误。
调试更简化
函数通常都很小且明确,因此调试更简化。当程序无法正常工作时,每个函数都是一个接口点,您可以在其中检查数据是否正确。
容易测试
由于每个函数都是一个单元测试的可能对象,因此测试更容易。函数不依赖于需要在运行测试之前复制的系统状态,您只需要综合正确的输入,然后检查输出是否符合期望。
可组合性
在使用函数式编程样式时,您将编写一些具有不同输入和输出的函数。其中一些函数将不可避免地专用于特定的应用程序,但其他函数在各种程序中都很有用。
函数是一等对象
支持函数式风格编程的函数应具备以下特征,Python都有:以另一个函数作为参数并将另一个函数返回给其调用者。
在Python中,函数被视为一等对象,即我们可以将函数存储在变量中,从函数返回函数等。
下面是一些有助于理解装饰器的Python函数示例。
函数作为对象
这个示例中将函数视为对象。在这里,函数demo()被分配给一个变量。
示例
# Creating a function
def demo(mystr):
return mystr.swapcase() # swapping the case
print(demo('Thisisit!'))
sample = demo
print(sample('Hello'))
输出
tHISISIT!
hELLO
将函数作为参数传递
在这里,函数作为参数传递。demo3()函数调用demo()和demo2()函数作为参数。
示例
def demo(text):
return text.swapcase()
def demo2(text):
return text.capitalize()
def demo3(func):
res = func("This is it!") # Function passed as an argument
print (res)
# Calling
demo3(demo)
demo3(demo2)
输出
tHIS IS IT!
This is it!