Python:参数列表中的Lambda
有没有一个很好的解决方案可以在参数列表中执行类似lambda函数的操作Python:参数列表中的Lambda,python,lambda,Python,Lambda,有没有一个很好的解决方案可以在参数列表中执行类似lambda函数的操作 timeout = None [...] response = self.session.post( url=self.baseUrl, data=str(data), headers=headers, timeout=lambda: 0 if self.timeout is None else self.timeout ) 我知道这会引发一个异
timeout = None
[...]
response = self.session.post(
url=self.baseUrl,
data=str(data),
headers=headers,
timeout=lambda: 0 if self.timeout is None else self.timeout
)
我知道这会引发一个异常。但是有没有一个可能的解决办法来做这样的事情呢
感谢如果您将
超时定义为类变量,那么它将决定对象的状态。如果您必须根据某些条件设置初始值,您可以执行以下基本操作之一:
在\uuuu init\uuuuu
使用并定义getter,它返回适用的值
它只是一个内联函数,用于闭包。不清楚您在做什么。代码本身不会抛出异常,它是完全有效的;但是大概post
方法不需要调用,所以我不明白为什么要传递一个。如果self.timeout不是self.timeout,为什么不能简单地执行timeout=0?同意@DanielRoseman。在这里使用lambda似乎没有任何优势。这是你的真实代码还是你用来回答这个问题的一个例子?谢谢@DanielRoseman。这只是一个示例代码。当然,如果self.timeout不是其他self.timeout,我应该执行timeout=0。我只是想知道是否有可能在参数列表中使用函数的返回
timeout = None
response = self.session.post(
url=self.baseUrl,
data=str(data),
headers=headers,
timeout=(lambda: 0 if self.timeout is None else self.timeout)()
)