Pythonの組み込み属性「__name__」とは?役割と使い方をわかりやすく解説
Pythonの組み込み属性 __name__ は、クラス、型、関数、メソッド、ディスクリプタ、ジェネレータインスタンスなど、オブジェクトの名前を取得・出力するために使われる特殊な属性です。
__name__の基本的な動作
Pythonインタープリタがモジュール(ソースファイル)をメインプログラムとして直接実行した場合、特殊変数 __name__ には "__main__" という値が自動的に設定されます。一方、そのファイルが別のモジュールからインポートされた場合には、__name__ にはそのモジュール名が設定されます。
この仕組みを利用することで、「スクリプトとして直接実行されたときだけ特定の処理を行う」といった制御が可能になります。if __name__ == "__main__": という記述は、まさにこの特性を活かした定番のイディオムです。
使用例
以下のコードは、__name__ の使い方を示したものです。
class Bar(object):
def foo(self):
""" これはdocstring(ドキュメント文字列)の一例です。
定義された関数に関する有用な情報を記述できます。
"""
pass
print(foo.__name__)
print(Bar.__name__)実行結果
このコードを実行すると、次のような出力が得られます。
foo Bar
このように、関数に対して __name__ を参照すると関数名(foo)が、クラスに対して参照するとクラス名(Bar)がそれぞれ文字列として返されることが確認できます。デバッグやログ出力、動的な処理の分岐など、さまざまな場面で活用できる便利な属性です。
-
【初心者向け】Pythonの if __name__ == "__main__" の意味と使い方を徹底解説
Pythonインタープリターがソースファイルを読み込むと、そのファイル内に書かれたすべてのコードが実行されます。特殊変数 __name__ の正体コードを実行する前に、Pythonはいくつかの特殊な変数を定義します。その一つが __name__ です。Pythonインタープリターがそのモジュール(ソースファイル)をメインプログラムとして直接実行している場合、__name__ には __main__ という値が設定されます。逆に、そのファイルが別のモジュールからインポートされた場合には、__name__ にはモジュール名が設定されます。なぜこのチェックが必要なのか?この仕組みが役立つ理由は、開発
-
Pythonの「%」演算子とは?文字列フォーマットの基本と使い方を解説
Pythonの「%」演算子の役割 Pythonにおける「%(パーセント)」は、文字列フォーマット演算子(補間演算子)として機能します。「format % values」という形式で記述すると、フォーマット文字列内の変換指定子が、values側の要素によって置き換えられます。この仕組みは、C言語のsprintf()関数とよく似ています。 基本的な使い方:文字列の埋め込み 最もシンプルな例は、文字列の中に変数の値を埋め込むケースです。 >>> lang = Python >>> print %s is awesome! % lang Python is awe