我有一个很长的声明:

if LongClassName.results[variable1][longerVariable2][variable3] == 0:
   LongClassName.results[variable1][longerVariable2][variable3] = 42


正如人们可以清楚地看到的那样,此代码中有很多重复项(在条件及其主体中使用相同的表达式)。有没有一种简化的方法?在C ++中,我可以使用引用,如下所示:

auto &ref = LongClassName.results[variable1][longerVariable2][variable3];
if (ref == 0) {
    ref = 42;
}


简化此表达式的Python方法是什么?

最佳答案

您可以在此级别上停下来获取参考:

partial_ref = LongClassName.results[variable1][longerVariable2]
if partial_ref[variable3] == 0:
   partial_ref[variable3] = 42


这不是特别的Pythonic语言,但它与原始C++代码最接近。

10-07 23:14