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

Pythonのglobals()、locals()、reload()関数


globals()関数とlocals()関数を使用して、呼び出し元の場所に応じて、グローバル名前空間とローカル名前空間の名前を返すことができます。

locals()が関数内から呼び出されると、その関数からローカルにアクセスできるすべての名前が返されます。

globals()が関数内から呼び出されると、その関数からグローバルにアクセスできるすべての名前が返されます。

これら両方の関数の戻りタイプは辞書です。したがって、keys()関数を使用して名前を抽出できます。

モジュールがスクリプトにインポートされると、モジュールの最上位部分のコードは1回だけ実行されます。

したがって、モジュール内の最上位コードを再実行する場合は、reload()関数を使用できます。 reload()関数は、以前にインポートされたモジュールを再度インポートします。 reload()関数の構文は次のとおりです-

reload(module_name)

ここで、module_nameはリロードするモジュールの名前であり、モジュール名を含む文字列ではありません。たとえば、helloモジュールをリロードするには、次のようにします-

reload(hello)

  1. 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'> メソッドは特別なクラスの関数であり、バイ

  2. 一部のPython関数の前後にアンダースコア__が付いているのはなぜですか?

    上記のように先頭と末尾に2つのアンダースコアが付いた名前は、基本的にPython組み込み関数用に予約されていることに注意してください。同様の名前を使用しない方がよいでしょう。