Python 从函数内部删除全局变量

要从函数内部删除全局变量:

  • 使用 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 变量,但如果我们尝试在函数体中删除它,则会出现错误。

python 删除全局变量

我们只能从声明它的同一范围内删除一个变量,除非该变量已被标记为全局。

如果我们想从函数内部重新分配全局变量,行为也是如此。

name = 'Alice'


def example():
    # mark global
    global name

    print(name)

    # 从函数内部重新分配全局变量
    name = 'Bob'


example()  # 'Alice'
example()  # 'Bob'

如果一个变量在函数体中被赋值,除非显式声明为全局变量,否则它就是一个局部变量。

我们可以从函数内部引用全局名称变量,但如果我们在函数体中为变量赋值,则局部变量会隐藏全局变量(除非将变量标记为全局变量)。

查看笔记

扫码一下
查看教程更方便