Python:如何编写一系列代码?

时间:2015-10-17 14:15:11

标签: python lambda block

我目前正在教自己python 3,有一件事让我烦恼:我的意思是我期待的一切,包括lambda。但是,我如何编写代码块?

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

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

现在是python:

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

3 个答案:

答案 0 :(得分:1)

认为你的意思是,

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

答案 1 :(得分:1)

这不是你编写Python的方式。 Lambdas只是非常简单的函数的语法糖,并且只能包含一个表达式。如果你想做任何其他事情,你必须写一个函数。

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

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

答案 2 :(得分:0)

如果你真的想在lambda中对多个表达式进行排序,那么就可以对它进行排序&#34;伪造它&#34;通过从多个子表达式构建数据结构。 Python将在构建数据结构时评估数据结构中的项。元组是使用的更有效的数据结构之一:

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

请注意, f 会返回一个元组,其中包含两个 print 函数调用的返回值,每个函数调用都是

>>> x
(None, None)

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