Skip to main content
 首页 » 编程设计

python之神秘的 Python 表达式

2025年05月04日16powertoolsteam

谁能解释一下初始化mbr2的表达式?

class MyClass(object): 
  def __init__(self, param1, param2=None): 
    self.mbr1 = param1 
    self.mbr2 = ({}, param2)[bool(param2)] 

谢谢。

请您参考如下方法:

逻辑根据 param1 的真实性 从元组中选择两个值之一。如果 False 元组索引为 0,否则为 1; bool 值很容易被强制转换为整数。

使用三元运算符可以更清楚地表达:

self.mbr2 = param2 if param2 else {} 

或用或短路:

self.mbr2 = param2 or {}