通常、変数に値を割り当てて ID を確認すると、Python は基本的にオブジェクトに「名前」を付けているだけなので、それらが同じであることが期待されます。これは、次のコードで確認できます。
>>> a = 3
>>> id(a)
19845928
>>> id(3)
19845928
問題は、「name」で同じことを実行するときです
>>> __name__
'__main__'
>>> id(__name__)
19652416
>>> id('__main__')
19652448
ID が異なるのに、同じであってはならないのはなぜですか? __name__
参考にもなるので。