簡體   English   中英

Python lambda用作參數,從父函數調用其他參數

[英]Python lambda used as an argument, calling other arguments from parent function

我是編程新手,在理解Python中的lambda函數時遇到了一些麻煩。 我了解為什么使用它及其有效性。 只是在學習應用方面遇到困難。 我已閱讀指南,並觀看了有關使用lambda作為參數的演講。 我試過使用地圖功能。 不知道這是否是正確的方法,但這是我最基本形式的代碼損壞:

def Coord(x, y, z=lambda: z*2 if z < x or z < y else z)):
    print(z)
Coord(10,20,30) 
Coord(10,20,12) 
Coord(10,20,8) 

需要分別返回30、24和32。 不使用lambda的工作代碼:

def Coord(x, y, z):
    while z < x or z < y:
        z*=2
print(z)

您不能在z的默認參數定義中使用Coord函數中的其他參數(在您的情況下為lambda函數)。

您可能需要執行以下操作:

def Coord(x, y, w, z=lambda a,b,c: c*2 if c < a or c < b else c):
    print(z(x,y,w))

要么

def Coord(x, y, w):
    z=lambda: w*2 if w < x or w < y else w
    print(z())

當使用3個參數求值時,這兩個定義是等效的,它們的結果是:

>>> Coord(10,20,30)
30
>>> Coord(10,20,12)
24
>>> Coord(10,20,8)
16

暫無
暫無

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

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