質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Q&A

1回答

530閲覧

下層ディレクトリのfrom,importの書き方

hogebar

総合スコア5

Python 3.x

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

0グッド

0クリップ

投稿2022/01/23 05:19

from,import,init.pyの関係を解説読んでも分かったような分かっていないような状態です。
const.pyに書かれた定数を使いたい時、下記のmain.pyでimportに1個ずつ書くのが一般的なのでしょうか?

調べた所、import * は読み手を混乱させるので非推奨と書かれていたので、避けたいです。

from common.const import *

もっと良い書き方あったら教えて下さい。

■main.py

from common.const import LF, CRLF print("あああ" + LF + "いいい") print("あああ" + CRLF + "いいい")

■const.py

LF = "\n" CRLF = "\r\n" TAB = "\t"

■ディレクトリ構成

C:. ├─ main.py common ├─ __init__.py └─ const.py

■環境
windows10
anaconda python 3.9

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

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

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

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

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

guest

回答1

0

「import *」という書き方は、何がインポートされるかわからず、何かの定義を上書きしてしまうかもしれないし、もし、以下のような書き方をしてると、どこのモジュールに属しているものなのかわからなくなります。

python

1from moduleA import * 2from moduleB import *

全部書くのが面倒であるということであれば、別名を付けて明示的に使うのがいいのではないかと思います。

python

1inport common.const as const 2 3print("あああ" + const.LF + "いいい") 4print("あああ" + const.CRLF + "いいい")

投稿2022/01/23 09:59

TakaiY

総合スコア12769

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

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

hogebar

2022/01/25 10:05

お答えありがとうございます。 まとめてインポートする場合は最初にモジュール名が付いてしまうのは仕方ないことなのでしょうか? まとめてインポートする形で、「const.LF」ではなく、「LF」で参照できるあれば知りたいです。(ワイルドカードを使ったimportを除く)
TakaiY

2022/01/25 15:22 編集

できる方法はありません 「インポートする」というのは、その名前を使えるようにするということです。 「inport common.const」とすることで「common.const」が使えるようになり、 「from common.const import LF」とすることで、「LF」が使えるようになるのです。「*」は全部という意味なので同一です。 LFをそのまま使えるようにするには、明示的(LFとして)/暗示的(*)でインポートするしかありません。 そして、やるなら明示的にするべきです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問