Smalltalk use: better《余録》代入 vs. 束縛
|記事一覧|Smalltalk use: better
《余録》代入 vs. 束縛 《Python3.1》
《著》真樹育未《監修》小泉ひよ子とタマゴ倶楽部
第0版♪1988/10/12
Smalltalk-80 セミナー用に作成したテキスト(1988)をもとに、Jython 版(2003)を経て、Python 版(2009)として加筆/再構成した余録集です。
変数の生涯
変数の生涯を図解すると、次のようになります。
変数に期待される機能は、次のようなものです。
- 束縛を更新(変更)する
- 値を参照する
- 束縛を削除(無効に)する
未束縛の変数を参照しようとすると、例外 NameError を生成します。
■ 変数:代入モデルの隘路
代入モデルでは、オブジェクトを入れるのに「必要な大きさの箱」が用意されると考えます。すると、
Traceback (most recent call last): File "", line 1, in NameError: name 'a' is not defined >>> hex(id(a)) '0x2f9b40'変数 a が未定義だと、例外 NameError を生成して、エラーメッセージを出力します。変数 a にオブジェクト 3 を代入するときには、それを入れるのに「必要な大きさの箱」が用意されるはずです。>>> b = 4 >>> hex(id(b)) '0x2f9b50'>>> hex(id(a)) '0x2f9b50' >>>変数:束縛モデル
束縛された状態のオブジェクトは、誰かが参照する可能性があるので、リサイクルの対象にはなりません。 》作業中です《Last updated♪2009/07/20