第5.4節Python関数における変数と役割ドメイン

1642 ワード

一、関数の変数使用規則
  • 関数の実行時に使用されるグローバル空間は呼び出し元のグローバル空間であり、パラメータおよび関数が使用するローカル変数は関数単独のローカル名前空間に格納される.
  • 関数のパラメータが関数で値を変更した場合、呼び出し元自体のデータには影響しませんが、パラメータが可変タイプのコンテナであり、関数でコンテナ内の要素を変更した場合、この変更は呼び出し元のデータに影響します.
  • 関数の変数は、ローカル変数(ローカル名前空間の変数)を使用するか、グローバル変数(グローバル名前空間の変数)を使用することができます.関数は、検索変数の読み取り専用を実行するときに、ローカル変数で検索し、見つからない場合はグローバル変数で検索します.したがって、ローカル変数とグローバル変数に同じ名前の変数がある場合、関数はローカル変数を使用し、ローカル変数に対応する変数がない場合にのみグローバル変数を使用します.一般的に、関数はローカル変数のみを操作し、グローバル変数を操作せず、特殊な場合にのみグローバル変数にアクセスします.
  • 関数の内部で変数に値を割り当て、x=x+1などの値を指定した場合、Pythonがグローバル変数または非ローカル変数であることを明確に伝えない限り、変数のデフォルトはローカル変数です.関数に使用する変数がローカル変数として定義されていない場合、グローバル変数または非ローカル変数の宣言は行われません.Pythonは、関数に対応する変数の定義や付与がないと判断し、エラーを報告します.

  • 二、関数の中でグローバル変数に値を与える方法
    1、globalを使用して変数をグローバル変数として宣言するには、使用前に構文を使用します.
    Globalグローバル変数名
    次に、ローカル変数を使用するように、この変数を使用します.
    2、グローバル空間に対するディクショナリキー-値アクセス方式グローバル変数を直接操作し、使用前にglobals()関数でグローバル名前空間を取得し、ディクショナリのキー-値方式でアクセスする.例:
    #    
    def f(x):
    	g,l=globals(),locals() #             
    	g['x']=x*100  #        x       x  *100
    	     return g,l
    	   #     
    	    x=1  #   x  
    	    g1,l1=f(x)  #         g1     l1,   x   100
    	    g,l=globals(),locals()  #         g     l
       g、g1、l      , is     True, l1   。
    

    3、グローバル変数をリストのようなコンテナに保存し、そのコンテナをパラメータとして関数に渡し、関数でコンテナの要素に直接値を割り当てます.
    三、nonlocal変数
    関数の変数には、ローカル変数とグローバル変数のほかに、nonlocalを使用して宣言される非ローカル変数がありますが、nonlocalキーワードはネスト関数にのみ使用され、外層関数に対応するローカル変数が定義されているため、エラーが発生します.ここでは単純に引き出すだけで、使用も比較的簡単で、詳しくは紹介しません.
     
    老猿Python(https://blog.csdn.net/LaoYuanPython)シリーズ記事では,老猿がPythonを学んだ後にまとめた学習経験を徐々に紹介するために用いられ,これらの経験はPythonに触れたことのないプログラマーがPythonの世界に簡単に入るのに役立つ.