为什么在函数中增加变量时Python会抱怨引用未赋值?

3 投票
2 回答
859 浏览
提问于 2025-04-16 06:09

为什么Python会抱怨说chrome在赋值之前就被引用了?它对字典没有这种抱怨。这是在Python 2.5的情况下,如果这有什么影响的话。

def f():
  google['browser'] = 'chrome'
  chrome += 1

google = dict()
chrome = 1
f()

当然,我可以通过使用global chrome来解决这个问题,但我想知道为什么Python不认为这个变量已经被赋值。谢谢。

2 个回答

5

在这段话中,

chrome += 1

它还没有被创建。变量是在第一次被赋值的时候创建的。在这个例子中,当Python看到代码在增加'chrome'的值时,它根本没有看到这个变量。

试着把你的代码调整成这样:

chrome = 1

def f():
  global chrome
  google['browser'] = 'chrome'
  chrome += 1

google = dict()
f()
-1

这超出了范围:点击这里查看

撰写回答