如果满足条件,我正在尝试使用 lambda 或其他 python 功能返回字典,否则不返回。
myDict = None
myDict = lambda c: {} if not myDict else myDict
显然,这行不通,因为没有执行 lambda,所以最“pythonic”的方法是什么?
在我看来,您应该只使用条件表达式:
myDict = {} if not myDict else myDict
lambda
是一种创建函数的方式。所以:
func = lambda x: x*x
大致等于:
def func(x):
return x*x
因此,在您的示例中,您创建的函数或多或少等同于:
def myDict(c):
return {} if not myDict else myDict
myDict = None
get_myDict = lambda: myDict or {}
get_myDict()
返回一个空字典。
您也可以使用locals().get('myDict', None)
(或globals().get
取决于您的范围)