回答編集履歴

2

追記

2020/04/14 02:16

投稿

quickquip
quickquip

スコア11051

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  1 Subをimportした時点で、Mainにもローカル変数xが定義され、Subのxと同じ値で初期化される
52
52
 
53
- いろいろ間違いです。
53
+ "Subをimportした時点" が import Sub のことを言ってるならいろいろ間違いです。
54
54
 
55
55
 
56
56
 
@@ -59,6 +59,10 @@
59
59
  - モジュールMainの名前空間に束縛された変数のことはPythonでは[通例グローバル変数とは呼ばれます](https://docs.python.org/ja/3/reference/executionmodel.html#binding-of-names)
60
60
 
61
61
 
62
+
63
+ "Subをimportした時点" が from Sub import x のことを言っているなら、"ローカル変数"や"初期化される"という語の使い方に違和感がありますがだいたい合っています。
64
+
65
+ (Pythonは「値」を「名前」に束縛するという実行モデルです。その名前のことを**便宜上**変数と呼びますが、実行モデルに**変数という概念はなく**、したがって「変数の初期化」という概念もまたありません。一番最初にある名前に値を束縛することを**便宜上**「変数の初期化」と呼ばなくもない程度かと)
62
66
 
63
67
 
64
68
 

1

サブモジュールのインポート時の名前束縛の追記と誤字修正

2020/04/14 02:16

投稿

quickquip
quickquip

スコア11051

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  1. Subがxという属性を持っているかをチェックする
34
34
 
35
- 1. もし持っていない場合、Sub.x というというサブモジュールのインポートを試みる(失敗したらImportError)
35
+ 1. もし持っていない場合、Sub.x というというサブモジュールのインポートを試みる(成功するとSub.xモジュールがSubの名前空間にxという名前で[束縛される](https://docs.python.org/ja/3/reference/import.html#submodules)。失敗したらImportError)
36
36
 
37
37
  1. import文が書かれたところの名前空間に、「Sub.x に束縛されているオブジェクト」を「xという名前」で束縛する
38
38
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  - Subをimportした時点ではモジュールMainの名前空間にSubという変数が定義されてモジュールSubが束縛されます
58
58
 
59
- - モジュールMainの名前空間に束縛された変数のことはPythonでは[通グローバル変数とは呼ばれます](https://docs.python.org/ja/3/reference/executionmodel.html#binding-of-names)
59
+ - モジュールMainの名前空間に束縛された変数のことはPythonでは[通グローバル変数とは呼ばれます](https://docs.python.org/ja/3/reference/executionmodel.html#binding-of-names)
60
60
 
61
61
 
62
62