前回の記事ではPythonが持っている組込関数の紹介をしました。
実はPythonをインストールした際には組込関数以外の関数もインストールされています。
今回はそれらの関数の使い方を学んで行きましょう。
モジュールの使い方
目次
- モジュールの読み込み方
- モジュール内関数の使い方
- datetimeモジュールを使ってみる
- モジュールの読み込み方2
モジュールの読み込み方
組込関数以外の関数はモジュールと呼ばれる単位で管理されており、
モジュール内の関数を使用する際は、プログラム内に以下のような記載する必要があります。
import モジュール名
こう記述することで、このモジュールに含まれる関数を利用することができます。
ちなみに。。。
上記import文は関数を使用する前であれば、プログラム内のどこに書いても正常に動作します。
が、一般的にはファイルの先頭にまとめて記載します。
1 2 | import datetime # 以下処理を記述・・・・ |
1 2 3 | # datetimeの関数を使用しない処理 import datetime # datetimeの関数を使用する処理 |
上記2つは正常に動作します。
が、
1 2 3 | # datetimeの関数を使用しない処理 # datetimeの関数を使用する処理 import datetime |
こちらは関数使用する処理のあとにimport文が記載されているため、動作しません。
また、詠み込むモジュールには別名をつけることができます。
import モジュール名 as (別名)
モジュール名が長い場合や、他のモジュールと名前が被っている場合などに使用します。
・モジュール内関数の使い方
では次に関数の呼び出し方をみてみましょう。
モジュール名.関数名()
または
別名.関数名()
で呼び出すことができます。
ただし、気を付けてほしいのが、
モジュールに別名を付けた場合は別名からしか呼び出せない
という点です。
1 2 | import datetime datetime.関数() |
1 2 | import datetime as d d.関数() |
は正常に動作しますが、
1 2 | import datetime as d datetime.関数() |
はエラーとなります。
・datetimeモジュールを使ってみる
では、datetimeモジュールを実際に使ってみましょう。
このモジュールは名前から想像できるように、日付や時刻などを扱うことができます。
datetimeモジュールには
- 日付を扱うためのdateオブジェクト
- 時刻を扱うためのtimeオブジェクト
等が格納されており、これらのオブジェクトが関数を持っているため呼び出し方は以下のようになります。
モジュール名.オブジェクト名.関数名()
ではまず、今日の日付を出力してみましょう。
1 2 3 | import datetime as d print (d.date.today()) |
2021-07-31
もちろん、変数に格納することも可能で、[年だけ][日だけ]のようにパーツごとに取り出すことも可能です。
1 2 3 4 5 6 7 8 | import datetime as d today = d.date.today() print (today) # 変数からの出力 print (today.year) # 年のみ print (today.month) # 月のみ print (today.day) # 日のみ |
2021-07-31
2021
7
31
また、デフォルトではハイフン区切りとなっていますが、○年○月○日のようにフォーマットを変更することも可能です。
1 2 3 4 5 6 | import datetime as d today = d.date.today() print (today.strftime( '%Y年%m月%d日' )) #フォーマットを指定 print (today) #today自体を変更したわけでは無いので、todayは「2021-07-31」のまま。 |
2021年07月31日
2021-07-31
モジュールの読み込み方2
最初の読み込み方ではモジュール内のすべてを詠み込む方法を記載しましたが、
モジュール内の特定のオブジェクトや、関数のみを詠み込む方法を記載しておきます。
from モジュール名 import 関数名 or オブジェクト名
from モジュール名 import 関数名 or オブジェクト名 as (別名)
関数を詠み込む例としてrandomモジュールを、
オブジェクトを詠み込む例としてdatetimeモジュールのdateオブジェクトを使用して説明していきます。
1 2 3 4 5 6 7 8 | # import random こう宣言していた場合は # num = random.randint() こう使いますが。。。 from random import randint as r # randint関数のみをimportし別名をつけると num = r( 0 , 10 ) # このように呼び出すことができます。 print (num) |
2
1 2 3 4 5 6 7 8 | # import datetime こう宣言していた場合は # today = datetime.date.today() こう使いますが。。。 from datetime import date as d # dateオブジェクトのみをimportし別名をつけると today = d.today() # このように呼び出すことができます。 print (today) |
2021-07-31
1点、気を付けないといけないのは、
モジュール内の特定の関数やオブジェクトをimportした場合、
その関数やオブジェクト以外は使用できない
という点です。
モジュール内の複数の関数やオブジェクトを使用したい場合はモジュールごとimportしましょう。
まとめ
組込関数以外の関数を使用したい場合はモジュールをimportしよう。
importはモジュール単位だけではなく、関数やオブジェクト単位でも行えるが、必ず関数を使用する前に行おう。
確認問題
1.今日の日付と、ランダムな日数後の日付を表示してみましょう。