Pythonのglobals()、locals()、reload()関数
globals()関数とlocals()関数を使用して、呼び出し元の場所に応じて、グローバル名前空間とローカル名前空間の名前を返すことができます。
locals()が関数内から呼び出されると、その関数からローカルにアクセスできるすべての名前が返されます。
globals()が関数内から呼び出されると、その関数からグローバルにアクセスできるすべての名前が返されます。
これら両方の関数の戻りタイプは辞書です。したがって、keys()関数を使用して名前を抽出できます。
モジュールがスクリプトにインポートされると、モジュールの最上位部分のコードは1回だけ実行されます。
したがって、モジュール内の最上位コードを再実行する場合は、reload()関数を使用できます。 reload()関数は、以前にインポートされたモジュールを再度インポートします。 reload()関数の構文は次のとおりです-
reload(module_name)
ここで、module_nameはリロードするモジュールの名前であり、モジュール名を含む文字列ではありません。たとえば、helloモジュールをリロードするには、次のようにします-
reload(hello)
-
Python関数とPythonオブジェクトメソッドのどちらがより基本的ですか?
関数はPythonで呼び出し可能なオブジェクトです。つまり、呼び出し演算子を使用して呼び出すことができます。ただし、他のオブジェクトも__call__methodを実装することで関数をエミュレートできます。 例 def a(): pass # a() is an example of function print a print type(a) 出力 C:/Users/TutorialsPoint/~.py <function a at 0x0000000005765C18> <type 'function'> メソッドは特別なクラスの関数であり、バイ
-
一部のPython関数の前後にアンダースコア__が付いているのはなぜですか?
上記のように先頭と末尾に2つのアンダースコアが付いた名前は、基本的にPython組み込み関数用に予約されていることに注意してください。同様の名前を使用しない方がよいでしょう。