Я предполагаю, что тот факт, что в вашей трассировке есть имя файла *, противоречит моему предположению, но эй & hellip;
Поскольку ваши вкладки / пробелы кажутся более или менее нормальными (при условии дословного копирования / вставки), возможно, вы вставили код в интерактивный интерпретатор?
Новая строка после определений полей заставит интерпретатора думать, что определение класса выполнено, и, таким образом, предполагается, что он вернулся в глобальную область видимости. Это будет означать, что def
действительно ложно с отступом.
* .py
не совсем хорошее имя для скрипта Python, кстати