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

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

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

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

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

Q&A

解決済

2回答

1972閲覧

if __name__ == "__main__"について

quiqui59911225

総合スコア16

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

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

0グッド

1クリップ

投稿2018/12/23 15:23

実行ファイル内で、同ディレクトリ内の他のpythonファイルをimportし、
その中に定義したクラスや関数を使いたいと思っています。
そこで

if __name__ == "__main__":

をつけるべきなのかわかりません。

というのも、
”pythonで他のソースコードをimportする際、そのファイルが実行される”
という事を知りました。
私のように、importしたい 他のpythonファイル内でクラスや関数の定義のみを行う場合、if name == "main"はimport側でも被import側でも不要でしょうか?

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

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

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

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

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

guest

回答2

0

ベストアンサー

あくまでモジュールとして使うのが前提で、単独では実行しないファイル(被import側)であれば

python

1if __name__ == "__main__":

を書く必要はありません。というか、この下に書く内容がないと思います。

importを行う側は、逆に「絶対にモジュールとして使ったりはせず、このファイルから実行する」という確信が持てればif __name__ == "__main__":を省略できます。ただ、実際問題としてはたとえばmain関数を作って

python

1 2def main(): 3 実行したい処理 4 5if __name__ == "__main__": 6 main()

とした方が何かと使い勝手が良いです。こうすればモジュールとして使えますし、mainを書き換えたバージョンを作ってどっちが良いか試してみたい、というような場合も柔軟に対応できます。

投稿2018/12/23 15:34

hayataka2049

総合スコア30933

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

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

quiqui59911225

2019/01/21 05:25

返信遅くなってすみません。よくわかりました!ありがとうございました!
guest

0

補足的な回答ですが、モジュール側で利用するとしたら、モジュール自体のテストケースやサンプルコード(利用例)を記述する場合がありえると思います。
また被モジュール側で利用しmain関数に分ける意図としては「グローバルスコープを汚染させない」ことがあげられるようです。(調べるまで知りませんでしたが…)
参考:if name == 'main' の下にコードをダラダラと書く人、挙手しなさい

投稿2018/12/23 15:43

can110

総合スコア38262

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

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

quiqui59911225

2019/01/21 05:27

返信遅くなってしまいすみません。私自身それほど詳しくないのですが、回答や参考サイトで勉強になりました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問