Python中locals()和globals()有何区别?

2026-05-24 13:381阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计381个文字,预计阅读时间需要2分钟。

Python中locals()和globals()有何区别?

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= 1
b= 6


Python中locals()和globals()有何区别?

本文共计381个文字,预计阅读时间需要2分钟。

Python中locals()和globals()有何区别?

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= 1
b= 6


Python中locals()和globals()有何区别?