Python中locals()和globals()有何区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计381个文字,预计阅读时间需要2分钟。
Python 的 `locals()` 和 `globals()` 是内置函数,它们提供了访问局部和全局变量的方式。`locals()` 返回当前作用域内的局部变量字典,而 `globals()` 返回当前全局作用域的变量字典。
示例代码如下:
pythondef test(arg): a=1 b=2 data_dict={} print(locals()) print(globals())if __name__=='__main__': test(1)
1、locals() 和 globals() 是python 的内建函数,他们提供了字典的形式访问局部变量和全局变量的方式。
示例代码:
def test(arg):a=1
b=2
data_dict = {}
print locals()
print globals()
if __name__ == '__main__':
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()返回的是全局变量的字典,修改其中的内容,值会真正的发生改变。
示例代码:
b = 5 # 定义一个全局变量def test2():
a=1
locals()["a"] = 2 # 修改局部变量
print "a=", a
globals()["b"] = 6 # 修改全局变量
print "b=", b
if __name__ == '__main__':
test2()
输出为:
a= 1b= 6
本文共计381个文字,预计阅读时间需要2分钟。
Python 的 `locals()` 和 `globals()` 是内置函数,它们提供了访问局部和全局变量的方式。`locals()` 返回当前作用域内的局部变量字典,而 `globals()` 返回当前全局作用域的变量字典。
示例代码如下:
pythondef test(arg): a=1 b=2 data_dict={} print(locals()) print(globals())if __name__=='__main__': test(1)
1、locals() 和 globals() 是python 的内建函数,他们提供了字典的形式访问局部变量和全局变量的方式。
示例代码:
def test(arg):a=1
b=2
data_dict = {}
print locals()
print globals()
if __name__ == '__main__':
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()返回的是全局变量的字典,修改其中的内容,值会真正的发生改变。
示例代码:
b = 5 # 定义一个全局变量def test2():
a=1
locals()["a"] = 2 # 修改局部变量
print "a=", a
globals()["b"] = 6 # 修改全局变量
print "b=", b
if __name__ == '__main__':
test2()
输出为:
a= 1b= 6

