トップページ > プログラム > 2014年06月28日 > ANCf73I/

書き込み順位&時間帯一覧

38 位/195 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000001100000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
くだすれPython(超初心者用) その23

書き込みレス一覧

くだすれPython(超初心者用) その23
401 :デフォルトの名無しさん[sage]:2014/06/28(土) 09:49:17.72 ID:ANCf73I/
勘違いする人もいそうだから補足するけど
>> a = 257
>> b = 257
>> a is b
がFalseを返すのは「複数行に渡って書いてるから」ではなく「REPLが一行ずつコンパイルしているから」だよ
通常のコーディングではモジュールや関数単位でリテラルを保存する領域が作られて、そこへの参照が代入されているためTrueを返す
REPL上でも
def function():
a = 257
b = 257
return a is b
はTrueを返すのが確認できるはず
くだすれPython(超初心者用) その23
404 :デフォルトの名無しさん[sage]:2014/06/28(土) 10:37:48.78 ID:ANCf73I/
確かに文字列だとキャッシュされてるのかどこに書いても同一になるね
でもさすがに
a = "abcdef"
b = "abc"
c = "def"
a is b + c
はFalseが返ってくる模様
a is "abc" + "def"
ならTrueになるんだけどコンパイル時に文字列の連結だけは勝手にやってくれるんだっけか


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。