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

Car*_*tes 5 python indentation

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

我想知道是否准确地说新的缩进级别始终由行尾的冒号(:)表示.

这是一行python:

if my_boolean:
Run Code Online (Sandbox Code Playgroud)

由于在这一行的末尾有一个冒号,我将确定下一行python应该是一个缩进块.这总是准确的吗?有没有结肠不存在时需要缩进的情况?

Mad*_*ist 5

该行末尾的冒号是下一行缩进的最常见的指示符示例.另一个是任何具有比结束括号更多的括号,括号或括号的行.后一种情况更复杂,因为括号的顺序非常重要,并且因为下面的缩进是任意的.

另一个要考虑的是,你没有那个还判定是否给定线有望成为任何迹象显示取消,直到你得到它缩进.

这个故事的寓意是你最好使用ast模块暴露的现有机器,而不是重新发明轮子.有时这是一个非常复杂的轮子.