クラスや関数を定義した****.pyを作成した時に、
とコーディングすると他のスクリプトから
を行った場合に、
の部分が実行されてしまい、
と表示されます。 HogePrint()の部分はあくまでテスト用のコードなのでコレは望ましくない。
かといって、テスト用のtest_normal_coding.pyとかを用意してわざわざテストコードを書くのは
メンドクサイ。 そこで、__name__というモジュールを使います。__name__はスクリプト実行環境
値が入ります。
・メインスクリプトとして実行された場合
u'__main__'
・他のスクリプトからインポートされた場合
u'スクリプト名'
が設定されます。 これを利用して、上記のnormal_coding.pyを下記のように書き換えます。
これで、name_coding.pyを実行した時は、
と表示されますが、他のスクリプトから
を実行しても、表示されません。 コレで思う存分テストコードを書く事ができます。
#normal_coding.py
def HogePrint():
print u'__name__='+__name__ #__name__に入っている値を出力する
#関数のテスト
HogePrint()
import normal_coding
#関数のテスト
HogePrint()
>>__name__=normal_coding
かといって、テスト用のtest_normal_coding.pyとかを用意してわざわざテストコードを書くのは
メンドクサイ。 そこで、__name__というモジュールを使います。__name__はスクリプト実行環境
値が入ります。
・メインスクリプトとして実行された場合
u'__main__'
・他のスクリプトからインポートされた場合
u'スクリプト名'
が設定されます。 これを利用して、上記のnormal_coding.pyを下記のように書き換えます。
#name_coding.py
def HogePrint():
print u'__name__='+__name__ #__name__に入っている値を出力する
if __name__==u'__main__':
'''このif分内にテスト用のコードを書く'''
#関数のテスト
HogePrint()
>>__name__=__main__
import name_coding