Считайте, что Python понимает код на уровнях, где отступы определяют, к какому уровню относится каждый код.
В результате можно перейти с уровня 2 (оператор try - строка 2) кУровень 4 (строка 3) точно так же, как вы можете перейти с уровня 2 на уровень 3 в обычном режиме.
Однако, если вы попытаетесь перейти с уровня 2 на уровень 1 без компиляции оператора try согласно его определенному синтаксису,вы получите сообщение об ошибке.
Вместо того, чтобы делать вышеописанное для обнаружения ошибок отступов, как описано выше, возможно, попробуйте определить функцию, которая проверяет уровни вместо ошибок, генерируемых компилятором Python.
ПростоЧтобы дать немного пояснения, вот ваш код с напечатанными номерами уровней и строк:
1 def test(): //Level 1
2 try: //Level 2
3 print "ABC" //indentaton error//Level 4
4 logger.info("printed") //Level 3
5 #except Exception as e:
6 #logger.error("Exception occured while order dictionary",exc_info=True)
7 except IndentationError as e: //Level 2
8 logger.error("indentation err",exc_info=True)//Level 3
Дайте мне знать, если у вас есть какие-либо другие вопросы.