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

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

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

Blockchain(ブロックチェーン)とは、分散型台帳技術もしくは分散型ネットワークのことを指します。クラウド上のデータを分散し、ノード間でデータの相違があった際には他ノードの合意によって信頼性が高いデータを判断。データの確保および信憑性を保持する技術です。

Python 3.x

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

Q&A

解決済

1回答

820閲覧

あえてif __name__ == '__main__':を記述する理由は?

okahijiki

総合スコア404

Blockchain

Blockchain(ブロックチェーン)とは、分散型台帳技術もしくは分散型ネットワークのことを指します。クラウド上のデータを分散し、ノード間でデータの相違があった際には他ノードの合意によって信頼性が高いデータを判断。データの確保および信憑性を保持する技術です。

Python 3.x

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

0グッド

0クリップ

投稿2020/07/02 06:57

下記の事例にて、なぜ、
if name =='main'が記述されているのでしょうか。

記述しなくても、 出力は同様なのですが...

ご教示のほど、よろしくお願いいたします。

(コード出典:「現役シリコンバレーエンジニアが教えるpythonで始めるスクラッチからのブロックチェーン開発入門/Udemy」

python

1from ecdsa import NIST256p 2from ecdsa import SigningKey 3 4class Wallet: 5 def __init__ (self): 6 self._private_key = SigningKey.generate(curve=NIST256p) 7 8#if __name__ == '__main__':を記述した場合 9if __name__ == '__main__': 10 wallet = Wallet() 11 print(wallet._private_key.to_string().hex()) 12#157b1d13f8209c99034c412ceae796c4dd7fdab4588f8df2ecf7fc37dfe44144 13 14 15#if __name__ == '__main__':を記述しない場合 16wallet = Wallet() 17print(wallet._private_key.to_string().hex()) 18#cf0a932599bc3b48630bfe11863d4ddadff5f3267e71f2ba60cc617afe876be1 19 20 21

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

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

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

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

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

guest

回答1

0

ベストアンサー

そのソース、たとえばwallet.pypython wallet.py単体で実行したときだけ処理させたい
そのソースをimportしたときには処理させたくないコードをその部分に書きます。

一般的には動作確認用や単体テストの処理をif __name__ == '__main__':の中に書いたりします。
参考:Pythonのif name == 'main'の意味と使い方

投稿2020/07/02 07:12

can110

総合スコア38266

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

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

okahijiki

2020/07/02 07:56

ご回答、ありがとうございます。 同ファイル内では、if __name__ == '__main__'がTrueになり、コードが出力される。 一方、importで読み込んだ場合(__name__はファイル名となるため)Falseとなり、出力されない。それを応用して、単体のテストに使ったりするのですね。
can110

2020/07/02 07:56

はい。そのとおりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問