我正在尝试做以下事情:
myChain = myChain(a,b) if a & b else "do_nothing"
有没有办法这样做?
或者我应该坚持平时:
if a & b:
myChain = myChain(a,b)
谢谢!
答案 0 :(得分:2)
如果您只想在一行中创建第二个代码块,可以删除换行符:
if a & b: myChain = myChain(a,b)
如果您绝对不想使用if
语句,则可以像在第一个代码块中一样使用条件表达式。但这是一种不寻常的方式。
myChain = myChain(a,b) if a & b else myChain
答案 1 :(得分:1)
我认为这取决于你的目标;你是指分配" do_nothing"到myChain
?这就是这两者的作用。如果这很好,那么你很好 - 否则,可能更喜欢
if a and b:
myNewChain = myChain(a, b) #why assign to the same name as the function/class?
else:
myNewChain = None
......或者None
实际应该是什么。
如果你正在使用它进行流量控制 - 看起来你可能是这样,给定字符串的名称 - 通常不鼓励这样做,只是因为人们希望看到分配什么时候有三元运算符。无论这样做是否存在实际问题,我都不确定。