モジュールとimportとfrom入門
モジュールや、importとfromが、入門のコードでよく出てきますが、何なのか?と思いながらも、おまじないとしている人も多いかと思います。 また、importとfromの違いがピンとこないって人もいると思います。 今日で、それは終わりにしましょう。モジュールって?
答えは、 モジュールというのは、.pyで書かれたファイルのことです。 みなさんは、.pyファイルのコードを書いたことがあると思います。それらは全部モジュールです。モジュール=ファイル名.py
と思っちゃえ。
とにかく、.pyで書かれていればモジュールなのです。
例えば、以下の.pyもモジュールです。
hello = "hello"
世界一簡単なモジュールの完成です。(笑)
そして、このファイルも当然importやfromで呼び出せるのです。(importとfromの違いは次の章で)
さっそくimportしてみましょう。
p.pyからhello.pyを呼び出してみます。
import hello
print(hello.hello)
どちらも同じフォルダに入れてください。
その後、
コマンドから実行
hello.pyの変数helloの中身が出力されました!!
なんてことはないですねwww
モジュールって、.pyで書かれたファイルのことです。
モジュールってのが慣れないなら、.pyと思えばいいです。。
importとfromの違い
答えは、モジュールの全体を利用するのがimportで、 モジュールの一部(変数や関数だと思ってください。)を利用するのがfromっていう違いです。 ほんとそれだけです。なんてことはありませんね。 具体例を示していきます。説明に入る前に、hello.pyの中身を書き換えます。
hello="hello"
world="world"
まずは、importの例から
p.pyの中身を以下のようにします。
import hello
print(hello.hello)
print(hello.world)
ターミナル上から、python p.pyと打ち込むと
でました!!import hello
と打ち込むと、モジュールのすべての属性を利用できます。
次に、fromの例を示します。
先ほどのp.pyを以下のようにします。
from hello import world
print(hello.hello)
print(hello.world)
実行してみましょう!!
結果は、エラーになるはずです。
なぜならば、モジュールのhello.pyの変数worldそのものをimportしたからです。
つまり、
hello.pyの変数helloはimportされません!!
じゃあ、print(hello.hello)を消したらどうなるでしょうか
from hello import world
print(hello.world)
これを実行したらどうなるかというと、
これもエラーになります。(笑)
from モジュール import モジュールの属性
という形式を用いた場合、モジュールの属性そのものが使えるわけです。要するに、モジュール.モジュールの属性みたいにしなくていいわけです。というか、したらダメです。エラーになるはずです。
以下に、そのことを考慮したp.pyを載せます。
from hello import world
print(world)
from hello import worldとしたことで、
worldという変数そのものが使えるようになったわけです。
まとめ
モジュールとは.pyです。
import モジュールのみだと、
モジュール全体を利用
from モジュール import モジュールの属性だと
モジュールの属性そのものを扱えるようになるです!!
まあ、本当は色々細かい話はあるのですが、そんなことは必要になったときに調べればいいだけです。
てことで、上のルールを知ってさえいればあとは、なんとかなると思われ。
あと、宣伝ですが、ツイッターを始めてみたので
登録お願いします!!