【发布时间】:2019-11-25 14:22:57
【问题描述】:
我收到一条消息“分配前引用了局部变量”
使用外部变量并成功,但赋值失败
x = 10
y = 10
def some():
print(x)
some()
10
x = 10
y = 10
def some():
x = 100-x+x
print(x)
some()
local variable 'x' referenced before assignment
x = 10
y = 10
def some():
t=100-x
print(t)
some()
90
x = 10
y = 10
def some():
t=100-x
x=t
print(t)
some()
local variable 'x' referenced before assignment
有什么区别?预期结果应该相同,但在第二个样本中失败。
这是否意味着我只能从 'x' 读取,不能写入 'x' ?
【问题讨论】:
-
不是关于如何使用全局声明,只是为了确认为什么使用与函数外部同名的变量,并通过解释器获取不同的变量声明。
-
我认为变量应该定义为局部变量,或者全局变量不取决于它在子程序中的使用方式。