Python
 Computer >> コンピューター >  >> プログラミング >> Python

if __name__ ==__main __:Pythonで何をしますか?


Pythonインタープリターがソースファイルを読み取ると、そこにあるすべてのコードが実行されます。

コードを実行する前に、いくつかの特別な変数を定義します。たとえば、Pythonインタープリターがそのモジュール(ソースファイル)をメインプログラムとして実行している場合、特別な__name__変数に値"__main__"を設定します。このファイルが別のモジュールからインポートされている場合、__name__はモジュールの名前に設定されます。

これを行う理由の1つは、直接実行できるモジュール(.pyファイル)を作成する場合があるためです。または、インポートして別のモジュールで使用することもできます。メインチェックを実行することで、モジュールをプログラムとして実行する場合にのみコードを実行し、誰かがモジュールをインポートして関数を自分で呼び出したい場合にのみコードを実行しないようにすることができます。

たとえば、次のコードを持つ2つのファイルone.pyとtwo.pyがある場合:

one.py:

def func():
    print("func() in one.py")
print("Root of one.py")
if __name__ == "__main__":
    print("one.py is being run directly")
else:
    print("one.py is being imported")

Two.py:

import one
print("Root of two.py")
one.func()
if __name__ == "__main__":
    print("two.py is being run directly")
else:
    print("two.py is being imported")

今実行すると、

$ python one.py

出力が表示されます:

Root of one.py
one.py is being run directly

しかし、実行すると

$ python two.py

出力が表示されます:

Root of in one.py
one.py is being imported
Root of in two.py
func() in one.py
two.py is being run directly

  1. %はPythonの文字列に何をしますか?

    %は、文字列フォーマット演算子または補間演算子です。 formatの%値(formatは文字列)を指定すると、formatの%変換仕様は、0個以上の値の要素に置き換えられます。この効果は、C言語でsprintf()を使用する場合と同様です。たとえば、 >>> lang = "Python" >>> print "%s is awesome!" % lang Python is awesome この表記で数値をフォーマットすることもできます。たとえば、 >>> cost = 128.527 >&

  2. Pythonの文字列リテラルの前にある「b」文字は何をしますか?

    Python2では「b」または「B」のプレフィックスは無視されます。 Python 3では、バイトリテラルの前には常に「b」または「B」が付いています。 str型ではなくbytes型のインスタンスを生成します。 ASCII文字のみを含めることができます。 128以上の数値のバイトは、エスケープで表す必要があります。 Python 3.xは、タイプを明確に区別します。 str =...リテラル=一連のUnicode文字(Pythonのコンパイル方法に応じてUTF-16またはUTF-32) バイト=b...リテラル=オクテットのシーケンス(0から255までの整数)