Когда вы выполняете
./t1.py
, вы выполняете файл t1.py
, но он не выполняется как модуль t1
. Он считается модулем __main__
. (Это то, что проверяет строка if __name__ == '__main__'
.) Это означает, что когда эта строка:
import t1
в t2.py
пытается импортировать t1
, Python начинает выполнение файла t1.py
снова , чтобы создать модуль t1
. Вы получаете две версии класса A
, одна из которых - __main__.A
, а другая - t1.A
. Модификация t1.A
ничего не делает для __main__.A
, потому что, хотя они получены из одного и того же кода в том же файле, они не являются тем же классом.