Python: A more concise syntax for variable assignment when accessing a NoneType object
我有下面的python代码
1 2 3 4 | if obj is None: identifier = None else: identifier = obj.id |
其中
我几乎不记得有更简洁的语法(比如一行代码?)也可以达到同样的效果。如果我不是在做梦,有人能告诉我简单的语法是什么吗?谢谢。
1 | identifier = None if obj is None else obj.id |
ZZU1
如果你使用一个没有条件表达式的旧Python版本,你可以放松对布尔表达式的语义评价:一个布尔表达式的价值是该术语在确定其最终价值的表达式中的价值。这声音是抽象的,但在你的案件中你可以说:
1 | ((obj is None and [None]) or [obj.id])[0] |
如果你有
1 | ((True and [None]) or [obj.id])[0] |
是什么
1 | ([None] or [obj.id])[0] |
代表
如果你没有
1 | ((False and [None]) or [obj.id])[0] |
是什么
1 2 3 4 5 | (False or [obj.id])[0] = ([obj.id])[0] = obj.id |
这是你如何模拟三元运算符AKA"条件式if expression"if former times.
一般模式是一样的。
1 | (b and [a] or [c])[0] |