Pythonのグローバル変数リテラシー

Pythonは本当にグローバル変数はプロシージャレベルですJavaおよびC ++でのグローバル変数、ではない、彼らの視点に立って、PythonはビューのPythonのポイントにはグローバル変数ではありません、グローバル変数があり、Pythonはグローバルなキーワードを提供しますあなただけ定義された現在のpythonファイル/モジュールのグローバル変数、Pythonでグローバル変数を変更することができ、Pythonのファイルには、モジュール、独立した名前空間、このモジュールで定義された変数が唯一の名前空間に属しているので、pythonのノーますです真のグローバル変数、ファイルレベルでのみグローバル変数。

だから、Pythonのグローバル変数は、相対的な用語であります

例:
test.py

a = 1

t1.py

import sys
import test # 导入test模块

a = 1 # 声明一个变量

def func1():
    global a # 引用当前命名空间的全局变量
    a += 1

def func2():
    test.a += 1  # 引用test模块命名空间的变量

def func3():
    # print(sys.modules) # 记录当前文件导入的所有模块
    module = sys.modules['test'] # 二次引用已导入的test模块
    module.a += 1       # 引用test模块命名空间的变量

func1()
func2()
func3()

print(a)        # 结果:2
print(test.a)   # 结果:3

おすすめ

転載: blog.51cto.com/12643266/2429895