如何将 lambda 返回的字符串与其他字符串连接起来?
How to concatenate a string returned by a lambda with other strings?
我正在尝试使用 lambda
检查对象 (self
) 的属性 problematic_object
是否为 None
。如果是,它应该 return 一个 ""
(空字符串),如果不是,则 str(self.problematic_object)
。我试过 3 种方法:
1:
def __str__(self):
return "string1" + str(self.object) + "\n" + "string2" + self.another_object + "\n" + "string3" + exec(lambda self: str(self.problematic_object) if self.problematic_object!=None else "")
2:
def __str__(self):
return "string1" + str(self.object) + "\n" + "string2" + self.another_object + "\n" + "string3" + (lambda self: str(self.problematic_object) if self.problematic_object!=None else "")
3:
def __str__(self):
return "string1" + str(self.object) + "\n" + "string2" + self.another_object + "\n" + "string3" + lambda self: str(self.problematic_object) if self.problematic_object!=None else ""
我在所有情况下都遇到此错误:
SyntaxError: invalid syntax
我知道这可以使用普通的 if-else
来完成,但是有什么方法可以使用 lambda
来完成吗?这是我第一次使用 lambda
和这种 if-else
。我犯了什么错误? lambda
可以这样用吗?
如果 self.problematic_object
可能是 None
,在这种情况下,您只需要一个空字符串,只需使用 f-strings 将其添加到整个字符串即可。不需要任何布尔逻辑:
def __str__(self):
return f"string1{self.object}\nstring2{self.another_object}\nstring3{self.problematic_object}"
如果 self.problematic_object
是 None
则不会在字符串末尾添加任何内容。如果它不是 None
那么它的值将被添加。
我正在尝试使用 lambda
检查对象 (self
) 的属性 problematic_object
是否为 None
。如果是,它应该 return 一个 ""
(空字符串),如果不是,则 str(self.problematic_object)
。我试过 3 种方法:
1:
def __str__(self):
return "string1" + str(self.object) + "\n" + "string2" + self.another_object + "\n" + "string3" + exec(lambda self: str(self.problematic_object) if self.problematic_object!=None else "")
2:
def __str__(self):
return "string1" + str(self.object) + "\n" + "string2" + self.another_object + "\n" + "string3" + (lambda self: str(self.problematic_object) if self.problematic_object!=None else "")
3:
def __str__(self):
return "string1" + str(self.object) + "\n" + "string2" + self.another_object + "\n" + "string3" + lambda self: str(self.problematic_object) if self.problematic_object!=None else ""
我在所有情况下都遇到此错误:
SyntaxError: invalid syntax
我知道这可以使用普通的 if-else
来完成,但是有什么方法可以使用 lambda
来完成吗?这是我第一次使用 lambda
和这种 if-else
。我犯了什么错误? lambda
可以这样用吗?
如果 self.problematic_object
可能是 None
,在这种情况下,您只需要一个空字符串,只需使用 f-strings 将其添加到整个字符串即可。不需要任何布尔逻辑:
def __str__(self):
return f"string1{self.object}\nstring2{self.another_object}\nstring3{self.problematic_object}"
如果 self.problematic_object
是 None
则不会在字符串末尾添加任何内容。如果它不是 None
那么它的值将被添加。