Upload
katsuya-arai
View
1.511
Download
1
Embed Size (px)
Citation preview
こわくないPython補足資料
自己紹介3DCG Meetup主催。
!デザイン、スクリプト、3D、 映像等色々やってます。
!!
拙著:はじめてのZBrush !
Facebook:新井克哉 !
Twitter:@kickbase !!
めんたいこと呼ばれています。
セッション内の説明で変数は「箱」と考えるより「タグ付け」と
考えたほうがいいよというお話をしたんですが、その補足資料です。
なんで「タグ付け」なの?
Pythonの仕組みを見てみよう-コンピューターは忘れっぽい?-
コンピューターはものすごく計算が速いですが、
実はものすごく忘れっぽくつくられています。
「コンピューターが忘れっぽいって?」と
お思いになるかと思いますが、その仕組みを説明しましょう。
コンピュータは計算場所でガンガン計算をします。
でも、計算が終わったら計算結果も含めて消してしまうのです!
それは計算する領域を確保しておくためです。
でも、計算結果まで含めて消されてはたまりません。
なんのために計算したのかわからなくなっちゃいますね。
そこで変数の登場です。
保存場所(消さないでおく場所)に変数を用意し、
計算場所にあるデータにひも付けます。
なんと、変数とひも付いたデータは消されないのです!
プログラムの言葉を使えば、
変数とデータ(値)を紐付けることを「参照する」。
コンピュータが自動的にデータを消すことを
ガベージコレクションと呼びます。
!
どの変数からも参照されていないデータ(ゴミ)は、
ガベージコレクション(ゴミ収集)されるというわけです。
参照のイメージは「箱に入れる」よりも「タグ付け」に
近いと思いませんか?
!
そのため「タグ付け」という説明をしたのです。
続けて実際のPythonコードを見ながら
参照についてもう少し学びましょう。
!
きっとタグ付けの方がイメージしやすいと思います。
出力結果は
[1,10,100] [1,10,100]
True
となります。isというのは「同じかどうか」を調べるものです
※上記isの説明は少し嘘があるので、あとで訂正します
納得の出力結果ですね。
出力結果は
[1,10,100] [1,10,100]
False
となりました。
Why????? Pythonこわい
これもタグ付けで説明できます
aはデータ[1,10,100]を参照し、
bはaを参照しています。
aはデータ[1,10,100]を参照し、
bは別のデータである[1,10,100]を参照しているのです。
別のデータを参照していたので、a is bはFalseだったんですね。
つまりis演算子は、
「同じものを参照しているかどうか」
を表す機能なのです。
!
この「同じ値でも参照元が別にある」という状況は、
変数を「箱」ととらえると説明しにくいのです。
以上、タグ付けの補足でした。
By Katsuya Arai a.k.a めんたいこ