こんにちは。のっくんです。
今日の記事では、よく目にするimport,from,asってよく見るけど実はよく分かっていないって方のために解説します。
[speech_bubble type=”ln” subtype=”L1″ icon=”ilust/cat2_4_think.png” name=”ネコ”]これってよく見るけど、何となくいつも使ってたんだよな〜。[/speech_bubble]
実行環境
・Python 3.7
・Pycharm
ディレクトリ構成
コードを書く前に、ディレクトリの構成を書いておきます。
Pycharmでexpというプロジェクトを作成しその下にmain.pyとhellomod.pyを作ります。

main.pyでhellomodをimportする方法を書いていきます。
import
インポートをするための簡単なクラス、HelloClassを作ります。このクラスは引数を出力するメソッドを持ちます。
hellomod.py
1 2 3 4 5 6 7 |
class HelloClass: def __init__(self): print("Hello Class init") def hello_method(self, val): print("Hello Method") print(val) |
import文を使って呼び出してみます。import文には、インポートするファイル名(モジュール名)を指定します。hellomod.pyであれば”hellomod”になります。
main.py
1 2 3 4 |
import hellomod ins1 = hellomod.HelloClass() ins1.hello_method("call from ins1") |
実行結果
1 2 3 |
Hello Class init Hello Method call from ins1 |
import, from
fromを使うとインスタンス化するときのモジュール名を省略できます。
main.py
1 2 3 4 |
from hellomod import HelloClass ins2 = HelloClass() ins2.hello_method("call from ins2") |
実行結果
1 2 3 |
Hello Class init Hello Method call from ins2 |
as
下記の理由で別名でインポートしたい時に使います。
- モジュール名が被っている
- モジュール名が長すぎる
- 分かりやすい名前でインポートしたい
main.py
1 2 3 4 |
from hellomod import HelloClass as Hello ins3 = Hello() ins3.hello_method("call from hello") |
実行結果
1 2 3 |
Hello Class init Hello Method call from ins3 |
別の書き方
こんな書き方もできます。
hellomod.py
1 2 3 |
class ShortClass: def method(self, val): print(val) |
main.py
1 2 3 4 5 6 7 8 |
import hellomod hellomod.ShortClass().method("a") from hellomod import ShortClass ShortClass().method("aa") from hellomod import ShortClass as sc sc().method("aaa") |
こっちの方が分かり易いかな。