我有一个很长的声明:
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++
代码最接近。