谁能解释初始化mbr2
的表达式?
class MyClass(object):
def __init__(self, param1, param2=None):
self.mbr1 = param1
self.mbr2 = ({}, param2)[bool(param2)]
谢谢。
最佳答案
逻辑根据param1
的真实性从元组中选择两个值之一。如果False
元组的索引为0,否则为1;否则为1。布尔很容易被强制为整数。
使用三元运算符可以更清楚地表达它:
self.mbr2 = param2 if param2 else {}
或与
or
短路:self.mbr2 = param2 or {}
关于python - 神秘的Python表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41573484/