我正在用python写一个简单的模板引擎,它涉及将python与其他语言混合使用,我需要确定任何给定的python代码行的缩进级别。
我想知道是否准确地说行末尾总是用冒号(:)表示新的缩进级别。
这是一行python:
if my_boolean:
由于此行的末尾有一个冒号,因此我确定python的下一行应为缩进块。这总是准确的吗?在某些情况下我需要缩进不存在的冒号吗?
答案 0 :(得分:5)
该行末尾的冒号是指示下一行缩进的最常见示例。另一行是任何一行,其右括号,大括号或方括号多于右括号。后一种情况更为复杂,因为括号的顺序非常重要,并且以下缩进是任意的。
要考虑的另一件事是,在到达该行之前,您没有任何迹象表明给定的行是否会被缩进。
这个故事的寓意是,您最好使用ast
模块公开的现有机器,而不是重新发明轮子。有时候这是一个非常复杂的轮子。