我是python的初学者。
我不明白为什么
- 定义全局变量后赋值:有效
- 有效但立即定义和赋值全局变量:无效。
例如:
def Test():
global a=15
Test()
print(a)
在以下情况下无效:
def Test():
global a
a=15
Test()
print(a)
有效
global
语句语法是global <name>
的,只是告诉解释器您正在使用来自globals()
的变量,而不是当前作用域/框架的locals()
。它实际上只是告诉Python在哪里获取变量,并且不支持赋值。
global
关键字告诉解释器变量是全局变量。假设您有以下代码:
a = 10
def p():
a = 20
print('This is a local:', a)
print("a is unchanged:", 10==a)
def q():
global a
a = 40
print('This is the global:', a)
print("a has changed:", 40==a)
请记住,当函数内部调用global
时,它只会告诉您的解释器"在你的局部变量之外有这个变量"。因此,不能将值分配给在一行中作为global
调用的变量。
我也是 python 的新手,所以我想我会和你一起解决这个问题!它看起来像是在 = 登录行 2 处指示语法错误。它在第二个示例中有效,因为您在全局下方的新缩进行上单独声明了变量?所以我猜第一个示例不起作用,因为变量是与全局一起声明的?