python 中locals() 和 globals()


1、locals() 和 globals() 是python 的內建函數,他們提供了字典的形式訪問局部變量和全局變量的方式。

示例代碼:

 1 def test(arg):
 2     a=1
 3     b=2
 4     data_dict = {}
 5     print locals()
 6     print globals()
 7 
 8 
 9 if __name__ == '__main__':
10     test(3)

輸出為:

1 {'a': 1, 'data_dict': {}, 'b': 2, 'arg': 3}
2 {'__builtins__': <module '__builtin__' (built-in)>, '__file__': 'F:/work/workspace/pythonWorkspace/learn/locals_globals.py', '__package__': None, 'test': <function test at 0x0239F830>, '__name__': '__main__', '__doc__': None}

2、locals() 返回是當前局部變量的深拷貝,修改locals() 中變量值的時候,實際上對於原變量本身是沒有任何影響的。而globals()返回的是全局變量的字典,修改其中的內容,值會真正的發生改變。

示例代碼:

 1 b = 5 # 定義一個全局變量
 2 def test2():
 3     a=1
 4     locals()["a"] = 2  # 修改局部變量
 5     print "a=", a
 6     globals()["b"] = 6 # 修改全局變量
 7     print "b=", b
 8 
 9 if __name__ == '__main__':
10     test2()

輸出為:

a= 1
b= 6

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM