私は、可変オブジェクトと不変オブジェクトの区別についてちょっと混乱します。私は文字列の同じidを持っIdの型は不変です
tuple1 = ('Object1', 'Object2')
print id(tuple1)
tuple2 = ('Object1', 'Object2')
print id(tuple2)
list1 = ['Object1', 'Object2']
print id(list1)
list2 = ['Object1', 'Object2']
print id(list2)
string1 = "Foo bar"
print id(string1)
string2 = "Foo bar"
print id(string2)
、およびリストのIDが異なるが、タプルごとに異なるID:私は、オブジェクトのIDを見つけるために、次のコードの塊を試してみました。彼らは同じイドを持っていてはいけませんか?誰かがその仕組みを説明できるかどうか疑問に思っていましたか?
おかげ
タプルリテラルはコンパイル時に作成されます。それらはコードオブジェクトの 'co_consts'に格納され、' LOAD_CONST'オペレーションを使って一つのステップでロードされます。それらの作成に関わる時間はコンパイル時です。彼らはおそらく、おそらく単にデフォルトで拘束されるべきです。 – aaronasterling