LoginSignup
8
13

More than 5 years have passed since last update.

Pythonのfromとimportがいつもごっちゃになるので、無理やりこじつけてみた

Last updated at Posted at 2018-12-28

はじめに

Pythonでライブラリを使うときに宣言する、
from
import
がごっちゃにならないようにする、独自の無理やりな覚え方です。

fromfromを混同してしまう場合の覚え方

importにもfromにも、'm'と'o'のアルファベットが含まれてます。

m → module
o → object

と連想して無理やりこじつけます。

importのみの場合

script.py
import time

import の'm'から'module'を連想する。

import <モジュール名>

from *** import *** の場合

fromがある場合、importはモジュールではなく、オブジェクトのインポートを意味します。
私の場合、ここが混同する原因でした。

from <モジュール名> import <オブジェクト>

覚え方としては、それぞれのスペルを「後ろ」から読んで、連想してみます。

from → fro'm':後ろから読むと、oよりmが先に来るので、モジュール(module)。
import → imp'o'rt:後ろから読むと、mよりoが先に来るので、オブジェクト(object)。

以上、かなり無理やりですが、ど忘れした時の参考になれば幸いです。

ちょっと解説

Pythonでは、
ファイルは、モジュール(module)、
関数、クラス、変数、サブモジュールなどは、オブジェクト(object)、
と言います。

私の場合、ネットで独学が基本だったので、ここがよく分かっていなかったのですが、
importfrom
すぐ後に続くモジュールをインポートします。

script.py
import os  # モジュール os をインポート
import selenium  # モジュール selenium をインポート
from selenium import webdriver  # モジュール selenium のオブジェクト(サブモジュール) webdriver をインポート 

import

Pythonでは、関数やクラスを書いたファイルのことをモジュールと呼びます。
import <モジュール名>とすると、モジュールがインポートされます。

test.py
import time
import os

print (type(time))
# <class 'module'>

print (type(os))
# <class 'module'>

print (time)
# <module 'time' (built-in)>

print (os)
# <module 'os' from '/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py'>

from

from <モジュール名> import <オブジェクト名>を使うと、モジュール内のオブジェクト(関数、変数、クラス、サブのジュールなど)をインポートします。

インポートされるのはオブジェクトのみです。(下の例では、webdriver

test.py
from selenium import webdriver
8
13
2

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
8
13