Python中global
和globals()
有以下区别:
作用域:
global
语句用于在函数内部访问和修改全局变量。globals()
函数返回一个包含所有全局变量的字典。
使用方式:
global
语句需要在函数内部使用,声明需要访问的全局变量。globals()
是一个函数,可以在任何地方调用,返回当前作用域下的所有全局变量。
返回值:
global
语句本身不返回任何值。globals()
函数返回一个字典,包含当前作用域下的所有全局变量及其值。
应用场景:
global
语句主要用于在函数内部修改全局变量的值。globals()
函数常用于检查和操作当前作用域下的全局变量,如动态修改、遍历等。
举例说明:
# 使用global
x = 10
def change_x():
global x
x = 20
change_x()
print(x) # 输出 20
# 使用globals()
y = 100
def get_globals():
print(globals())
get_globals() # 输出 {'__name__': '__main__', '__doc__': None, '__package__': None, ......, 'y': 100, 'get_globals': <function get_globals at 0x7f6a1c0b8d60>}
总之,global
是用于在函数内部修改全局变量,而globals()
是用于获取当前作用域下的所有全局变量。在实际开发中,需要根据具体需求选择合适的使用方式。