有一个很好的解决方案可以在参数列表中执行类似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
)
我知道它会引发异常。但有没有可能的解决方案来做这样的事情?
由于
答案 0 :(得分:1)
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)()
)
这只是一个内联函数与闭包一起使用。
答案 1 :(得分:0)
如果将timeout
定义为类变量,则确定对象状态的内容。如果您必须根据某些条件设置初始值,您可以执行以下基本操作之一:
在__init__
使用@property
decorator并定义getter,它会返回适用的值。