命令式编程和声明式编程之间的区别?

2024-10-03 15:23:56 发布

您现在位置:Python中文网/ 问答频道 /正文

python中的列表理解是命令式程序还是声明式程序

例如:

vals = [1,2,3,4,5,6,7,8,9,10]
list2 = [x+2 for x in vals]  # Imperative or Declarative?
print(list2)

Tags: orin程序声明列表forprintdeclarative
2条回答

它是从Haskell(一种纯函数式编程语言)借用来的声明性构造

Python本身主要坚持命令式范式,尽管它在个案基础上借鉴了函数式编程

从另一个角度来看,列表理解表示映射/过滤操作(当然,您可以滥用它来产生副作用,但让我们继续使用它的主要用例,因为Python很少强迫您以特定的方式进行操作)。这两种都是声明性结构

如果你看这个列表的等价物

list(map(lambda x: x+2, range(10)))

可以看出,它基本上是一个声明性语句。然而,这是debatable (please see also the comments)。您将发现这两种观点的论据

相关问题 更多 >