2015年2月23日月曜日

グローバル変数 __name__, __file__

__name__

名前が代入されるグローバル変数。
この変数に代入される名前はファイル名だけでなく場合によって変わる。
もし、ライブラリとして使われたなら、ここにはモジュール名が代入される。
モジュールの中では、(文字列の) モジュール名を取得することのできるグローバル変数。
もし、ファイルが実行された場合、ここには__main__が代入される。

__file__

これにはファイルのパスが代入される。

動作をみてみる

▼test2.py
def sam():
print("test2.py __name__: " + __name__)
print("test2.py __file__: " + __file__)
▼test.py
「test2.py」をインポートし、メンバのhogeメソッドで呼び出す。
hogeメソッドは「test.py」からしか実行できないようになっている。
import test2

def hoge():
print("test.py __name__: " + __name__)
print("test.py __file__: " + __file__)
test2.sam()

if __name__ == "__main__":
hoge()
▼「test.py」の実行結果
test.py __name__: __main__
test.py __file__: C:¥Python33¥test.py
test2.py __name__: test2
test2.py __file__: C:¥Python33¥test2.py
「test.py」の __name__ には、実行したファイルなので __main__ が入っている。
「test2.py」の __name__ には、モジュール名の test2 が入っている。
それぞれの __file__ にはファイルのパスが代入されている。

0 件のコメント:

コメントを投稿