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!
广告