目录
Delete global variable from inside a function in Python
从 Python 函数内部删除全局变量
从函数内部删除全局变量:
- 使用
global
关键字将变量标记为global
函数内部。 - 使用
del
语句删除变量。
主程序
my_var = 'hello world' def my_func(): global my_var del my_var print(my_var) # 👉️ 'hello world' my_func() # ✅ Variable is now deleted # ⛔️ NameError: name 'my_var' is not defined print(my_var)
my_var
您可以从函数内部引用全局变量,但如果您尝试在函数主体中删除它,则会出现错误。
我们只能从声明它的同一作用域中删除一个变量,除非该变量已被标记为
global
。如果您想从函数内部重新分配全局变量,则行为相同。
Python: 改变函数中全局变量的值
要在函数中更改全局变量的值:
- 使用
global
关键字将变量标记为函数内部的全局变量。 - 在函数内重新分配变量。
- 调用函数来更改全局变量的值。
主程序
my_var = 'bobbyhadz.com' def my_func(): # 👇️ mark as global global my_var my_var = 'google.com' print(my_var) # 👉️ bobbyhadz.com # 👇️ call function to update global variable my_func() print(my_var) # 👉️ google.com
您可以从函数内部引用全局变量,但如果不先使用关键字将其标记为全局变量,则my_var
无法更改其值。global
我们只能从声明它的同一范围更改变量的值,除非该变量已标记为
global
.如果变量在函数体中被赋值,则它是局部变量,除非明确声明为global
.
主程序
my_var = 'bobbyhadz.com' def my_func(): # 👇️ only has effect in the function my_var = 'google.com' print(my_var) # 👉️ google.com print(my_var) # 👉️ bobbyhadz.com my_func() print(my_var) # 👉️ bobbyhadz.com
您可以在函数内部引用全局变量,但如果您在函数主体中为变量赋值,则局部变量会覆盖全局变量(除非您将变量标记为 )global
。
如果您尝试在从函数内部更改其值之前读取全局变量,则会出现异常UnboundLocalError
。
主程序
my_var = 'bobbyhadz.com' def my_func(): # ⛔️ Error print(my_var) my_var = 'google.com' my_func()
我们试图my_var
在函数中定义变量之前访问它。
global
如果您需要在函数范围内定义变量之前访问该变量,则可以使用关键字。
主程序
my_var = 'bobbyhadz.com' def my_func(): # 👇️ mark as global global my_var print(my_var) # 👉️ bobbyhadz.com.com my_var = 'google.com' print(my_var) # 👉️ bobbyhadz.com my_func() print(my_var) # 👉️ google.com
我们使用global
关键字将变量标记为全局变量,以便能够在从函数内部更改它之前读取它的值。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: