LoginSignup
108
84

More than 1 year has passed since last update.

Pythonのモジュールとimportとfrom入門

Last updated at Posted at 2019-03-27

モジュールとimportとfrom入門

モジュールや、importとfromが、入門のコードでよく出てきますが、何なのか?と思いながらも、おまじないとしている人も多いかと思います。 また、importとfromの違いがピンとこないって人もいると思います。 今日で、それは終わりにしましょう。

モジュールって?

答えは、 モジュールというのは、.pyで書かれたファイルのことです。 みなさんは、.pyファイルのコードを書いたことがあると思います。それらは全部モジュールです。

モジュール=ファイル名.py
と思っちゃえ。

とにかく、.pyで書かれていればモジュールなのです。

例えば、以下の.pyもモジュールです。

hello.py
hello = "hello"  

世界一簡単なモジュールの完成です。(笑)

そして、このファイルも当然importやfromで呼び出せるのです。(importとfromの違いは次の章で)

さっそくimportしてみましょう。

p.pyからhello.pyを呼び出してみます。

p.py
import hello

print(hello.hello)

どちらも同じフォルダに入れてください。
その後、
コマンドから実行

image.png

結果は、
image.png

hello.pyの変数helloの中身が出力されました!!
なんてことはないですねwww

モジュールって、.pyで書かれたファイルのことです。
モジュールってのが慣れないなら、.pyと思えばいいです。。

importとfromの違い

答えは、モジュールの全体を利用するのがimportで、 モジュールの一部(変数や関数だと思ってください。)を利用するのがfromっていう違いです。 ほんとそれだけです。なんてことはありませんね。 具体例を示していきます。

説明に入る前に、hello.pyの中身を書き換えます。

hello.py
hello="hello"
world="world"

まずは、importの例から

p.pyの中身を以下のようにします。

p.py
import hello

print(hello.hello)

print(hello.world)

ターミナル上から、python p.pyと打ち込むと

image.png

でました!!import hello
と打ち込むと、モジュールのすべての属性を利用できます。

次に、fromの例を示します。
先ほどのp.pyを以下のようにします。

p.py
from hello import world

print(hello.hello)
print(hello.world)

実行してみましょう!!
結果は、エラーになるはずです。
なぜならば、モジュールのhello.pyの変数worldそのものをimportしたからです。
つまり、
hello.pyの変数helloはimportされません!!
じゃあ、print(hello.hello)を消したらどうなるでしょうか

p.py
from hello import world

print(hello.world)

これを実行したらどうなるかというと、
これもエラーになります。(笑)

from モジュール import モジュールの属性
という形式を用いた場合、モジュールの属性そのものが使えるわけです。要するに、モジュール.モジュールの属性みたいにしなくていいわけです。というか、したらダメです。エラーになるはずです。

以下に、そのことを考慮したp.pyを載せます。

p.py
from hello import world

print(world)

image.png
出ました!!

from hello import worldとしたことで、
worldという変数そのものが使えるようになったわけです。

まとめ

モジュールとは.pyです。
import モジュールのみだと、
モジュール全体を利用
from モジュール import モジュールの属性だと
モジュールの属性そのものを扱えるようになるです!!

まあ、本当は色々細かい話はあるのですが、そんなことは必要になったときに調べればいいだけです。
てことで、上のルールを知ってさえいればあとは、なんとかなると思われ。

あと、宣伝ですが、ツイッターを始めてみたので
登録お願いします!!

@niwaka_dev

108
84
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
108
84