Python: 参数列表中的 Lambda
Python: Lambda in Parameter List
是否有一个很好的解决方案来在参数列表中执行类似此 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
定义为 class 变量,那么它是 决定对象状态的东西 。如果您必须根据某些条件设置初始值,您可以执行以下基本操作之一:
初始化在__init__
使用@property
decorator并定义getter,returns适用值。
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)()
)
这只是一个与闭包一起工作的内联函数。
是否有一个很好的解决方案来在参数列表中执行类似此 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
定义为 class 变量,那么它是 决定对象状态的东西 。如果您必须根据某些条件设置初始值,您可以执行以下基本操作之一:
初始化在
__init__
使用
@property
decorator并定义getter,returns适用值。
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)()
)
这只是一个与闭包一起工作的内联函数。