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

时间:2017-10-17 17:50:02

标签: python indentation

我正在为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的规则旨在强制执行可读性,但它们并不完美,我认为我找到了一个边缘案例。)

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

1 个答案:

答案 0 :(得分:3)

不要使用单独的赋值语句。使用dict文字。例如,如果您使用这些语句从头开始初始化空字典,则可以改为

boxColors = {
    'large trunk': 'black',
        'shoebox 1': 'red',
        ...
}

或者如果您要更新现有的词典,

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