LoginSignup
1
2

More than 3 years have passed since last update.

import追加内容/実践例

Posted at

import

importは「import モジュール名(ファイル名)」と記述することで、Pythonではコードの一部を別ファイルに移して、モジュールとして読み込むことができます。
importやモジュールについての参考記事url : https://qiita.com/ITdiary/items/daff5591e9b420a5055a
今回は前回の記事に追加でimportの説明をしたいと思います。
from モジュール名 import クラス名」と記述することで、そのモジュール内の指定したクラスを直接読み込むことができます。
これを用いることで、下記の例ではscript.py内でもこれまでと同じ様にNumberクラスを用いることができます

script.py
from utils import Number   # 「from モジュール名 import クラス名」

valid = validate(1)   # 前回import モジュール名の時は「モジュール名.関数名()」なので、utils.validate()と書く必要があった
print(valid)
utils.py
class Number

def validate(hand):
    if hand < 0 or hand > 2:
        return False
    else:
        return True

実践例

script.py
from utils import FruitMenu

fruit_menu1 = FruitMenu('りんご', 300) 
fruit_menu2 = FruitMenu('みかん', 250)
fruit_menu3 = FruitMenu('バナナ', 200)
fruit_menus = [fruit_menu1, fruit_menu2, fruit_menu3]

for menu in fruit_menus:
    print(menu.fruit_info())
utils.py
class FruitMenu:

    def __init__(self, name, price):
        self.name = name
        self.price = price

    def fruit_info(self):
        return self.name + ':' + str(self.price) + '円です'
出力結果
りんご:300円です
みかん:250円です
バナナ:200円です

上記の流れとしては、まずインスタンス生成後にインスタンス変数namepriceに値を自動で代入させるために__init__メソッドを用いました。
それらを変数fruit_menu1~3にそれぞれ代入し、リストfruit_menusにまとめました。
そして、for文を用いてリストの要素を1つずつ取り出し、変数menuに入れて処理を行います。
from utils import FruitMenuと記述しているのでfor文の処理で関数fruit_info()を呼び出すことができ、utils.pyファイル内の関数fruit_info()内の処理を実行させます。処理には先程自動で値を代入した変数namepriceを用いて、出力させたい内容を記述し、returnを用いて戻り値として呼び出し元に返します。ここで注意なのは、priceは数値なので文字列に変える必要があります。
そして、呼び出し元であるprint(menu.fruit_info())に返され、print()で出力されることで上記のように出力結果を得ることが出きます。

1
2
0

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
1
2