Python中函数内用global定义变量是全局变量吗?
Python函数内用global定义变量是全局变量吗?
不对。 在Python函数内部,使用global关键字存在两种情况:
- 声明使用外部全局变量: 当函数内部需要修改一个已存在的全局变量时,需要使用
global关键字进行声明。例如:
x = 10
def my_func():
global x
x = 20
my_func()
print(x) # 输出:20
在这个例子中,global x 声明了函数内部的 x 指的是全局作用域中的 x,因此函数修改的是全局变量 x 的值。
- 定义新的全局变量: 如果在函数内部使用
global关键字直接定义一个变量,那么这个变量会被创建为一个新的全局变量,即使函数外部不存在同名变量。例如:
def my_func():
global y
y = 30
my_func()
print(y) # 输出:30
这里,global y 在函数内部定义了一个新的全局变量 y,即使之前不存在这个变量。
总结:
- 在函数内部使用
global声明已存在的全局变量,是为了修改它的值。 - 在函数内部使用
global直接定义变量,会创建一个新的全局变量。
建议谨慎使用 global 关键字,因为它可能会破坏代码的结构和可读性,增加调试难度。在实际编程中,尽量使用函数参数和返回值来传递数据,避免过度依赖全局变量。
原文地址: https://www.cveoy.top/t/topic/fWna 著作权归作者所有。请勿转载和采集!