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

为什么Python在函数中增加变量时会抱怨赋值前的引用?,python,function,variables,Python,Function,Variables,为什么Python抱怨在赋值之前引用了chrome?它并不抱怨这本词典。如果Python2.5有所不同的话,这就是它 def f(): google['browser'] = 'chrome' chrome += 1 google = dict() chrome = 1 f() 当然,我可以使用全局Chrome ,但是我想知道Python为什么不考虑要分配的变量。谢谢。在声明中 chrome += 1 而且它还没有被创建。 变量是在第一次分配时创建的。在本例中,当python看到代

为什么Python抱怨在赋值之前引用了
chrome
?它并不抱怨这本词典。如果Python2.5有所不同的话,这就是它

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

google = dict()
chrome = 1
f()
当然,我可以使用<代码>全局Chrome <代码>,但是我想知道Python为什么不考虑要分配的变量。谢谢。

在声明中

chrome += 1
而且它还没有被创建。 变量是在第一次分配时创建的。在本例中,当python看到代码递增“chrome”时,它根本看不到这个变量

试着重新排列你的代码

chrome = 1

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

google = dict()
f()

超出范围:

@irrelephant:谢谢。一个打字错误漏掉了全局关键字!更正。谢谢。注释长度必须至少为15个字符。