有没有办法避开Python的缩进规则?



我正在为dict键分配一组值,其中一些对在语义上属于其他对,但由于Python的原因,我无法缩进以显示占有。这类似于我所拥有的:

boxColors["large trunk"] = "black"
boxColors["shoebox 1"] = "red"
boxColors["shoebox 2"] = "tan"
boxColors["jewelery box"] = "white"
boxColors["tacklebox"] = "green"

但是,鞋盒在行李箱里面,珠宝盒在鞋盒2里面。如果我能缩进这样的东西,就会更容易看到这种关系:

boxColors["large trunk"] = "black"
boxColors["shoebox 1"] = "red"
boxColors["shoebox 2"] = "tan"
boxColors["jewelery box"] = "white"
boxColors["tacklebox"] = "green"

显然我做不到,因为Python是如何解释空白缩进的。有没有什么不需要操作的东西可以放在一行的开头,在不改变其功能的情况下将行的其余部分推过去?例如,如果这是C的某种空白显著版本,我会这样做:

boxColors["large trunk"] = "black"
/**/boxColors["shoebox 1"] = "red"
/**/boxColors["shoebox 2"] = "tan"
/******/boxColors["jewelery box"] = "white"
/**/boxColors["tacklebox"] = "green"

但是,唉,Python没有C风格的块注释。有办法做我想做的事吗?

(是的,我意识到我在故意颠覆语言的设计。能够以这种方式颠覆它将提高我代码的可读性。我知道,我知道,Python的规则是为了增强可读性而设计的,但它们并不完美,我想我已经找到了一个边缘案例。)

编辑:我曾考虑过用换行符分隔部分,但这并不能让我展示多层深层次的所有权关系,我希望这种关系会成群结队。

不要使用单独的赋值语句。使用dict文字。例如,如果您使用这些语句从头开始初始化一个空dict,您可以改为执行
boxColors = {
'large trunk': 'black',
'shoebox 1': 'red',
...
}

或者如果你正在更新现有的dict,

boxColors.update({
'large trunk': 'black',
'shoebox 1': 'red',
...
})

最新更新