[過去ログ] Pythonのお勉強 Part68 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
135(2): (ワッチョイ 429b-+bWc) 2022/09/26(月)23:15 ID:QR+uVx8I0(1/2) AAS
python 3.9.10
a = (1, 2, 3)
b = a
c = (1, 2, 3)
print(a==b)
print(a is b)
print(a==c)
print(a is c) #True?
なぜ a is c が true になるのでしょうか?
136(1): (ワッチョイ 429b-+bWc) 2022/09/26(月)23:17 ID:QR+uVx8I0(2/2) AAS
>>135
ideone に貼っときます
外部リンク:ideone.com
なぜでしょうか?
140(1): (ワッチョイ d201-/Peb) 2022/09/26(月)23:49 ID:eE4Lst2k0(1) AAS
>>139
それREPLでやってるからinterningが効いてないじゃないかな
>>135
Tupleはimmutableだからaとcが同じオブジェクトを指しても問題なくて
Pythonが最適化をした場合はa is cがTrueになるケースがある
「interning」でググってみて
例えばTupleを関数で返すようにすればinterningされずにFalseになると思う
def foo(x):
return (x, x+1, x+2)
a = foo(1)
c = foo(1)
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.029s