pythonにおけるイコール(=)は、代入ではない。
Assignment statements in Python do not copy objects,
インタープリタ設計するときに代入なんて概念を持ち込まない。
pythonの場合、プログラムを入力した時点でオブジェになる。
コンパイラ設計の場合、メモリー・レジスタ間の代入つまりLOAD/STORE/MOVEが存在する。
pythonの立場で考えると「浅いコピーおよび深いコピー」論争は、なくなる。
また、Pythonの値渡しと参照渡しの論争は、なくなる。
a=123
と書いた場合、123という整数のオブジェにaというエリアスをつけるという意味です。
- オブジェクトとは、MITで発展したオブジェクト指向
- オブジェとは、ソルボンヌで発展したオブジェクト指向
b=a+1
a+1 というオブジェにbというエリアスつけるといういみです。
- エリアスとは、名前みたいなもの
もともとaliasとは、ファイルのコピーを作らないで名前を付けたのが始まりで別名と訳した。
訳した人は、死んじゃったので言うけど日本語にシステムエンジニアという言葉追加した人。プログラマという呼び方嫌いだった。
- オブジェとは、つかみどころのない物を表しています。
p=print
for i in range(5): p(i)
p('Hello world')
printというオブシェにpというエリアスをつける
実行結果は、
0
1
2
3
4
Hello world