-1

この質問は、私が誤解し、失敗した回答を提供したこの質問によって動機付けられまし た(私はそれを削除しました)

http://docs.python.org/library/functions.html#idを読み直して、Pythonでこれを試しました:

>>> a = 3
>>> id(a)
5392456

>>> a = 3
>>> id(a)
5392456

さらに数回繰り返し...

これらの番号 (つまり、メモリ内のオブジェクトのアドレス) が同じであるという事実は実装依存であり、保証されていませんが、それは正しいですか? それらは異なる可能性がありますよね?私の理解では、この単純な割り当てを行うたびに、新しいオブジェクトを作成して変数識別子にバインドしているため、それらがメモリ内の同じ場所に配置されるとは想定できません。

この理解は正しいでしょうか?もしそうなら、例外はありますか?

4

1 に答える 1

0

あなたはその仮定をすることができますがint、新しいオブジェクトを作成するのではなく、不変の型の場合、変数は不変のオブジェクトがすでに存在する場合はそれを参照するだけかもしれません。割り当てを行うと、オブジェクトへの参照が作成されます。そのオブジェクトはすでに存在しているか、作成されている可能性があります。

于 2012-05-17T16:39:34.957 に答える