簡體   English   中英

Python:如何編寫代碼序列?

[英]Python: How to write a sequence of code?

我目前正在自學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保證從左到右的順序評估元組的表達式,如下所述:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM