回答編集履歴
1
入力ミス訂正
answer
CHANGED
@@ -1,16 +1,18 @@
|
|
1
|
-
本当は自己解決でなく
|
1
|
+
本当は「自己解決」でなく、皆様親切指導の結果として、このスペースを借りて、自分の心得をメモしておきます。
|
2
2
|
C言語とよく付き合ってきた人間として、
|
3
3
|
本来データ格納アドレス(ポインターや参照)に関する概念がしっかりしているはずだが、
|
4
4
|
やはり、新しい言語の世界に入ったら、迷う現象が起きました。
|
5
5
|
|
6
|
-
1.Pythonの「辞書」というやつは、連続しているメモリ域で保存
|
6
|
+
1.Pythonの「辞書」というやつは、連続しているメモリ域で「value」を保存するのではなくて、
|
7
|
-
key名別で分配しているアドレスに
|
7
|
+
key名別で分配しているアドレスにそれぞれに対応する「value」を保存する。
|
8
8
|
|
9
|
-
2. Pythonのprint文でPythonの「辞書」を丸ごとprintする場合、
|
9
|
+
2. Pythonのprint文でPythonの「辞書」を丸ごとprintする場合、
|
10
|
+
個々key名別に分配しているアドレスに格納している「value」の中身をdumpする。
|
10
11
|
|
11
|
-
3. Pythonの「辞書」というデータ・タイプは個々valueを保存するわけでなく、
|
12
|
+
3. Pythonの「辞書」というデータ・タイプは個々valueを保存するわけでなく、
|
13
|
+
個々valueに対応する保存場所のアドレス(pointer)を保存するだけ。
|
12
14
|
|
13
|
-
4. (これは個人推測ですが)Pythonのprint関数
|
15
|
+
4. (これは個人推測ですが)Pythonのprint関数は__builtins__で保存している「value」(Python固有情報) に対して、解釈を行い、人間が読めるtext文書(built-in 関数とデータ・タイプの説明書)にして、
|
14
|
-
文字数が6.6Kにも登る。ただし、この情報の保存本体はユーザー定義変数内ではない!
|
16
|
+
文字数が6.6Kにも登る。ただし、この情報の保存本体はexec()に提供するユーザー定義変数内ではない! そのかわりに __builtins__ に対応するアドレスをexec()に提供するユーザー定義変数の中に挿入される。
|
15
17
|
|
16
|
-
|
18
|
+
有難うございました!
|