質問するログイン新規登録
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1093閲覧

Pythonでのインポート方法のベストプラクティスについて

tedmosby

総合スコア46

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/02/15 06:58

0

0

Pythonにおいてライブラリのインポートを行う方法について、

  1. import somethingのようにモジュールのすべてを読み込む
  2. from something import some_func, some_func_twoのように必要なものだけ読み込む

の2つの方法についてどのような違いがあり、どちらの方法が推奨されているのでしょうか?
実行効率の違いなどはあるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

1と2の違いは、名前付けの違いでしかありません。
名前は、ソースコードを読む上での重要な要点であるので、「ソースコードが読みやすい方を選ぶ」べきです。

以下に例を挙げます。

os.walk の場合

'os'モジュールの walk 関数を from os import walk でインポートすると、walk 関数を呼び出す際には、単に「walk()」と書く事になります。

赤の他人がこのコードをひと目見た際には、「walk?歩く?どこを歩くんだ?」と奇妙に思うかもしれません。
これは、あまりよろしくない例と言えます。

datetime.datetime の場合

datetime モジュールの datetimeクラスを使用する場合、datetimeとだけ書けば「あぁ、日付を扱う何らかのものだな」と理解できると思います。むしろ、「datetime.datetime」と書くのは冗長かもしれません。

もっとも、「これはdatetimeモジュールによるものだ」という意味合いを持たせるために「datetime.datetime」とあえて書くのもありかもしれません。

実行効率の違いなどはあるのでしょうか?

import something とインポートして、something.some_func でアクセスした場合、somethingの属性アクセスが入る分処理がかかるとも言えますが、よほど速度を求む場合でなければ気にならない程度ですし、普段は気にすることはないでしょう。

投稿2022/02/16 00:11

katsuko

総合スコア3601

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Python の名前空間とスコープ をお読みください。

投稿2022/02/15 08:22

ppaul

総合スコア24672

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問