LoginSignup
2
1

More than 1 year has passed since last update.

Pythonでdatetimeをimportするスタイルについて調査した

Posted at

はじめに

Pythonでdatetimeモジュールをインポートする際に、Webで調べてみると様々なスタイルでインポートされていることが分かります。

様々なスタイルでのdatetimeモジュールのインポート例
import datetime
import datetime as dt
from datetime import datetime, timedelta, ...
from datetime import datetime as dt

これは、

  • import numpy as npimport pandas as pdのように、datetimeをdtと省略したい
  • datetime.datetime を直接インポートしたい

といった考えによって生まれたスタイルだと思われます。

厳密には datetime と datetime.datetime は別物ですが、datetime.datetime しか使わない場合には下2行のスタイルが使われることも多いかと思います。

しかし、自身でスタイルが統一されていないと、datetime という文字を見たときに、datetime と datetime.datetime のどちらなのかややこしくなるでしょう。

そこで、自身のプロダクト開発においてdatetimeのインポートスタイルを統一したいと考え、githubの有名OSSを調べることで、一般的にどのスタイルが多く使われているのか調べてみることにしました。

各OSSの調査方法

今回は、githubでスター数の多いPythonレポジトリを参考にして、それぞれどのようなスタイルでdatetimeをインポートしているのか確認していきます。

https://github.com/search?l=Python&q=stars%3A%3E1&s=stars&type=Repositories
こちらのページの上からそれぞれのレポジトリで import datetime で検索して確認していきます。

調査結果

datetimeをインポートしているOSSについて、そのスタイルをまとめました。
ついでに、Python公式Docsについても調べてみました。

import datetime import datetime as dt from datetime import datetime from datetime import datetime as dt
docs.python.org
TheAlgorithms/Python
jackfrued/Python-100-Days
ytdl-org/youtube-dl
tensorflow/models
nvbn/thefuck
django/django
pallets/flask
httpie/httpie
ansible/ansible
huggingface/transformers
scikit-learn/scikit-learn

学んだこと

実際にOSSを調べてみたことで、以下の点について学ぶことができました。

  • ほとんどのOSSが from datetime import datetime を採用している
  • - Python公式Docs、scikit-learnなどは from datetime import datetime の形式のみを採用している
  • import datetimefrom datetime import datetime が混在しているOSSも多い
  • as dt は使われていない

そこで、私自身の結論として、

  • 基本的には from datetime import datetime のスタイルを採用する
  • どうしても必要になったときには import datetime を使用することとする

というスタイルを採用しようと思います。

おわりに

githubの有名OSSを調査することで、datetimeが一般的にどのようなスタイルでインポートされているか確認できました。

この調査が皆さんのプロダクト開発のお役に立てれば幸いです。
以上です。ありがとうございました。

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