[英]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.