Pythonグローバル変数とローカル変数[python Function][Pythonグローバル変数役割ドメイン][Pythonローカル変数役割ドメイン]


あなたの「関心」と「いいね」は、信頼であり、認めであり、支持であり、原動力である...
如意は相佐に会って、伝言を残すことができます.私は全力を尽くして正確で全面的にしようとして、一生修正して補充して更新します.
文書ディレクトリ
  • 1 Pythonグローバル変数
  • 1.1 Pythonグローバル変数概要
  • 1.2グローバル変数を定義する方法
  • 1.2.1関数外でのグローバル変数の定義
  • 1.2.2関数内でグローバル変数を定義する
  • 1.3 Pythonグローバル変数ドメイン概要
  • 2 Pythonローカル変数
  • 2.1 Pythonローカル変数概要
  • 2.2 Python局所変数作用域概要
  • 3指定されたスコープ内の変数
  • を取得する.
  • .3.1 globals()関数を使用して、グローバル役割ドメイン内のすべてのグローバル変数
  • を取得します.
  • 3.2 locals()関数を使用して、現在の役割ドメイン内のすべての変数
  • を取得します.
  • 3.3 vars(object)関数を使用して指定範囲内のすべての変数
  • を取得します.
  • 【友情リンク】
  • 微信公衆番号:私たちの阿傑
  • ブログ園
  • 【参考資料】
  • [python公式サイト](https://www.python.org/)
  • [Python 3.8.2 documentation](https://docs.python.org/release/3.8.2/)

  • 1 Pythonグローバル変数
    1.1 Pythonグローバル変数の概要
    Pythonでは、変数の定義位置によって区分され、すべての関数の外部で定義される変数をグローバル変数、英語でGlobal Variableと呼ぶ.
    1.2グローバル変数を定義する方法
    1.2.1関数外でのグローバル変数の定義
    すべての関数の外で定義された変数は、鉄定はグローバル変数です.
    例を次に示します.
    name = '    '  #          
    
    
    def info():  #    info()   
        print('           name =', name)
    
    
    info()  #    info()   
    print('           name =', name)
    
    

    実行結果:
               name =     
               name =     
    

    1.2.2関数内のグローバル変数の定義
    関数内で定義された変数は、globalキーワードを使用して修飾されると、その変数がグローバル変数になります.
    例を次に示します.
    def info():  #    info()   
        global name  #   :    global               ,         ,          。
        name = '    '  #   :        。   name           。
        print('           name =', name)
    
    
    info()  #    info()   
    print('           name =', name)
    
    

    実行結果:
               name =     
               name =     
    

    1.3 Pythonグローバル変数の役割ドメインの概要
    Pythonグローバル変数のデフォルトの役割ドメインはプログラム全体です.
    具体的には、グローバル変数は、各関数の外部で使用してもよいし、各関数の内部で使用してもよい.上記の例から分かるように、グローバル変数nameは、関数内にアクセスしてもよいし、関数外にアクセスしてもよい.
    2 Pythonローカル変数
    2.1 Pythonローカル変数の概要
    Pythonでは,変数の定義位置によって区分され,関数内部で定義された変数を局所変数,英語ではLocal Variableと呼ぶ.
    例を次に示します.
    例1、
    def info():  #    info()   
        name = '    '  #             name
        print('           name =', name)
    
    
    info()  #    info()   
    print('           name =', name)  #           ,   
    
    

    実行結果:
               name =     
        print('           name =', name)
    NameError: name 'name' is not defined
    

    例2、
    def info(age):  #    info(age)   
        name = '    '  #             name
        print('           name =', name)
        print('         age =', age)
    
    
    info(18)  #    info()   
    print('           name =', name)  #             
    print('         name =', age)  #         ,        
    
    

    実行結果:
               name =     
             age = 18
    Traceback (most recent call last):
      File "D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py", line 11, in <module>
        print('           name =', name)  #             
    NameError: name 'name' is not defined
    

    2.2 Pythonローカル変数の役割ドメインの概要
    Pythonローカル変数の役割ドメインは関数内部に限られており、関数を出すと使えなくなります.
    具体的には、ローカル変数が関数の外部にアクセスされ、PythonインタプリタはNameErrorエラーを報告し、アクセスする変数を定義していないことを示します.上記の例および実行結果から分かる.
    3指定されたスコープ内の変数の取得
    3.1 globals()関数を使用してグローバル役割ドメイン内のすべてのグローバル変数を取得する
    使用形式は次のとおりです.
    globals()
    

    以上のフォーマットの説明に対して、
  • globals():Pythonの内蔵関数です.
  • 戻り値:globals()関数は、Pythonに組み込まれたグローバル変数を含むグローバル役割ドメイン内のすべてのグローバル変数を含む辞書を返します.キーは変数名で、値は変数値です.
  • 例を次に示します.
    #       
    name = '    '
    age = 18
    
    
    def info():
        #       
        gender = ' '
        num = 1012
    
    
    print(globals())
    globals()['name'] = '  '  #        name,   
    print('     name =', name)
    
    
    

    実行結果:
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000017FE0CE0880>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py', '__cached__': None, 'name': '    ', 'age': 18, 'info': <function info at 0x0000017FE2935EE0>}
         name =   
    
    

    3.2 locals()関数を使用して、現在の役割ドメイン内のすべての変数を取得
    使用形式は次のとおりです.
    locals()
    

    以上のフォーマットの説明に対して、
  • locals():Pythonの内蔵関数です.
  • 戻り値:現在の役割ドメイン(関数内でlocals()関数を使用)を含む辞書を返します.関数にlocals()関数を使用し、globals()関数と同じ機能を持つすべての変数(Pythonに組み込まれたグローバル変数を含む)の辞書.
  • 例を次に示します.
    #       
    name = '    '
    age = 18
    
    
    def info():
        #       
        gender = ' '
        num = 1012
        print(locals())  #        locals()   
        locals()[gender] = ' '  #     ,    
        print('    gender =', gender)
    
    
    info()  #    info()   
    print('------------------------------')
    print(locals())  #        locals()   
    
    

    実行結果:
    {'gender': ' ', 'num': 1012}
        gender =  
    ------------------------------
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000012533DF0880>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py', '__cached__': None, 'name': '    ', 'age': 18, 'info': <function info at 0x0000012535A35EE0>}
    
    

    3.3 vars(object)関数を使用して指定した範囲内のすべての変数を取得する
    使用形式は次のとおりです.
    vars([object])
    

    以上のフォーマットの説明に対して、
  • vars():Pythonの内蔵関数です.
  • 戻り値:指定されたobjectオブジェクトの範囲内のすべての変数(Pythonに組み込まれたグローバル変数を含む)からなる辞書を返します.
  • [object]:オプションのパラメータ.objectパラメータを書かないで、vars()とlocals()の役割は完全に同じです.

  • 例を次に示します.
    #      Person  
    class Person:
        #       
        name = '    '
        age = 18
    
    
    print(vars())  #    object   ,  locals()       。
    print('----------------------------')
    print(vars(Person))  #   object   
    
    

    実行結果:
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001C00F7E0880>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:/Data/ProfessionalSkills/Python/PycharmProjects/demo/demo.py', '__cached__': None, 'Person': <class '__main__.Person'>}
    ----------------------------
    {'__module__': '__main__', 'name': '    ', 'age': 18, '__dict__': <attribute '__dict__' of 'Person' objects>, '__weakref__': <attribute '__weakref__' of 'Person' objects>, '__doc__': None}
    
    

    【友情リンク】
    微信公衆番号:私たちのジェイ
    ブログ
    【参考資料】
    Python公式サイト
    Python 3.8.2 documentation