Bruce.です。
機械伯爵 さんは書きました (2008/05/22 20:18):
> Bruce.さんとこの雑記帖経由、2ちゃんスレ。
>
> 「関数の引数って参照渡しなの?」
>
> 「はい、関数の引数は参照渡しです。
> ただし、Pythonは『そもそも直接変数を使えません!(全部ポインタ)』」
>
> こう書いとけば、間違えないだろ☆(極論)
>
> というか、確か大体のテキストにはこう書いてあると思うのだけど、やっぱり、
> 「オブジェクト」という言葉の代わりに「うっかり」「変数」という言葉を
> 使ってしまう(私もよくやるけど)のがまずいんだよねぇ……
>
> あと「assignment」って「代入」と訳されるけど本来は「割り当て」であり、
> 数学の「代入(substitute)」のイメージで考えると、誤解の元かも。
別に変数でも何でもいいですが、BASIC時代(Cでも?)に使われた、変数 == 箱
モデルで説明するのは勘弁といったところでしょうか。そんなものにたとえて
覚えさせるから、関数(メソッド)の引数としてどのように振舞うかで混乱が起
きてしまう。
2月あたりに遭遇したblogだと思うんですが、図入りできちんと説明していた
ところがありましたね。英語でしたけどw
要は、オブジェクトの「実体」というのがあって、「変数」というのは
それを見つけるための(見分けるための)ラベルのようなもの。という。
ラベルが指している先の内容を書き換えるのと、ラベルに書かれている
内容を書き換えるというのは別物ですよ。と。
call by reference で変わるのは前者じゃなくて後者でなくてはいけない
(call by fererence/pass by referenceと呼べない)。
って、Pythonの短整数もポインタの先にあるんでしたっけ?
--
木村浩一
I thought what I'd do was, I'd pretend I was one of those deaf-mutes or should I?
mail kbk [at] kt.rim.or.jp
web www.kt.rim.or.jp/~kbk/zakkicho/
homepage3.nifty.com/farstar/