解析python时如何判断下一行是否应该缩进

时间:2018-12-24 04:19:02

标签: python indentation

我正在用python写一个简单的模板引擎,它涉及将python与其他语言混合使用,我需要确定任何给定的python代码行的缩进级别。

我想知道是否准确地说行末尾总是用冒号(:)表示新的缩进级别。

这是一行python:

if my_boolean:

由于此行的末尾有一个冒号,因此我确定python的下一行应为缩进块。这总是准确的吗?在某些情况下我需要缩进不存在的冒号吗?

1 个答案:

答案 0 :(得分:5)

该行末尾的冒号是指示下一行缩进的最常见示例。另一行是任何一行,其右括号,大括号或方括号多于右括号。后一种情况更为复杂,因为括号的顺序非常重要,并且以下缩进是任意的。

要考虑的另一件事是,在到达该行之前,您没有任何迹象表明给定的行是否会被缩进。

这个故事的寓意是,您最好使用ast模块公开的现有机器,而不是重新发明轮子。有时候这是一个非常复杂的轮子。