回答編集履歴

1

微修正

2021/04/08 00:43

投稿

quickquip
quickquip

スコア11046

test CHANGED
@@ -8,9 +8,9 @@
8
8
 
9
9
  ファイルの入出力を相対パスで書く時はカレントディレクトリが基準で、
10
10
 
11
- 相対importはlib.pyの場所(要はlibsディレクトリ)が基準です。
11
+ 相対importはlib.pyの場所が基準です。
12
12
 
13
- (というかmain.pyから見たパスが使われるなら、lib.pyから**見た場所じゃない**ということでそれは**相対**じゃない?)
13
+ (というかmain.pyから見たパスが使われるなら、lib.pyから**見た場所じゃない**ということでそれは**相対**じゃないですよね?)
14
14
 
15
15
 
16
16
 
@@ -40,9 +40,15 @@
40
40
 
41
41
  ```
42
42
 
43
+ と書くのが絶対importで、これはsys.pathから探索されます。
44
+
43
- と書くが絶対importで、これは実行スクリプトのmain.pyがある場所(要はhogeディレクトリ)が基準になます。
45
+ 上記場合実行スクリプトのmain.pyがある場所(要はhogeディレクトリ)が基準になると期待して書いています。
44
46
 
45
47
 
48
+
49
+
50
+
51
+ それに対して、
46
52
 
47
53
  ```python
48
54
 
@@ -58,7 +64,9 @@
58
64
 
59
65
  ```
60
66
 
61
- 書くのが相対importでしょう。
67
+ 書くのが相対importでしょう。
68
+
69
+ これらはlib.pyがある場所(要はlibsディレクトリ)を基準に探索します。
62
70
 
63
71
 
64
72
 
@@ -70,4 +78,4 @@
70
78
 
71
79
  だいたいにおいて相対importを使う方が自然だと思います。
72
80
 
73
- 例えば「ちょっと気が変わってlibsというパッケージ名を別の名前にしたくなった」とか「libsの上にもうひとつ親パッケージを作って `hogehoge.libs` と一段深くしたくなった」とかいう時に、相対importが使わていればlib.pyの中変更する必要がないからです。
81
+ 例えば「ちょっと気が変わってlibsというパッケージ名を別の名前にしたくなった」とか「libsの上にもうひとつ親パッケージを作って `hogehoge.libs` と一段深くしたくなった」とかいう時に、相対importが使わていればlib.pyの中変更する必要がないという利点があるからです。