在 python 中发布全局关键字



我是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 处指示语法错误。它在第二个示例中有效,因为您在全局下方的新缩进行上单独声明了变量?所以我猜第一个示例不起作用,因为变量是与全局一起声明的?

最新更新