当前位置: 代码迷 >> python >> Python:如何编写代码序列?
  详细解决方案

Python:如何编写代码序列?

热度:78   发布时间:2023-06-13 13:40:54.0

我目前正在自学python 3,有一件事困扰着我:我的意思是我期望的一切,包括lambda。 但是,如何编写代码块?

例如,如何用python(2或3)编写以下简单程序代码:

(  (lambda () (display "hello ") (display "world") (newline))  )
=> hello world

现在是python:

=> >>> lambda :print("hello") print("world");

以为你是这个意思,

>>> f = lambda : print("hello","world")
>>> f
<function <lambda> at 0x7faeca581d08>
>>> f()
hello world

这不是您编写Python的方式。 Lambda是仅用于非常简单功能的语法糖,并且只能包含单个表达式。 如果您想做其他事情,则必须编写一个函数。

def hello_world():
    print("hello")
    print("world")

请注意,这不是lambda的事实没有任何区别。 您仍然可以将hello_world作为一流对象传递。

如果您真的想在lambda内对多个表达式进行排序,则可以通过从多个子表达式构造数据结构来“伪造”它。 Python将在构建数据结构时评估数据结构中的项目。 元组是使用的更有效的数据结构之一:

>>> f = lambda: (print('Hello ', end=''), print('World'))
>>> x = f()
Hello World

请注意, f返回一个元组,其中包含两个打印函数调用的返回值,每个调用函数均为None

>>> x
(None, None)

这可以按您期望的方式工作,因为Python保证从左到右的顺序评估元组的表达式,如下所述: