扫码一下
查看教程更方便
要从函数内部删除全局变量:
global
关键字将变量标记为函数内部的全局变量。del
语句删除变量。my_var = 'hello world'
def my_func():
global my_var
del my_var
print(my_var) # 'hello world'
my_func()
# 变量现在是已经删除了
# NameError: name 'my_var' is not defined
print(my_var)
我们可以从函数内部引用全局 my_var 变量,但如果我们尝试在函数体中删除它,则会出现错误。
我们只能从声明它的同一范围内删除一个变量,除非该变量已被标记为全局。
如果我们想从函数内部重新分配全局变量,行为也是如此。
name = 'Alice'
def example():
# mark global
global name
print(name)
# 从函数内部重新分配全局变量
name = 'Bob'
example() # 'Alice'
example() # 'Bob'
如果一个变量在函数体中被赋值,除非显式声明为全局变量,否则它就是一个局部变量。
我们可以从函数内部引用全局名称变量,但如果我们在函数体中为变量赋值,则局部变量会隐藏全局变量(除非将变量标记为全局变量)。