Python
Import
Python3
from
モジュール

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

モジュールとimportとfrom入門

モジュールや、importとfromが、入門のコードでよく出てきますが、何なのか?と思いながらも、おまじないとしている人も多いかと思います。

また、importとfromの違いがピンとこないって人もいると思います。

今日で、それは終わりにしましょう。

モジュールって?

答えは、

モジュールというのは、.pyで書かれたファイルのことです。

入門で、import numpy as np

とかやったことあると思いますが、numpyはモジュールであり、numpy.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っていう違いです。
importやfromの細かな仕様などをコードを書いていって示していきます。

ほんとそれだけです。なんのことはありませんね。

具体例を示していきます。

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


hello.py

hello="hello"

world="world"

まずは、importの例から

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


p.py

import hello

print(hello.hello)

print(hello.world)


cmd上から、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 モジュールの属性だと

モジュールの属性そのものを扱えるようになるです!!

まあ、本当は色々細かい話はあるのですが、そんなことは必要になったときに調べればいいだけです。

てことで、上のルールを知ってさえいればあとは、なんとかなると思われ。

あと、宣伝ですが、ツイッターを始めてみたので

登録お願いします!!

@89O5H1QpDQCbCkc