Python 为什么下面的代码显示错误而不是全局范围?

Python 为什么下面的代码显示错误而不是全局范围?,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我已经在全局上声明了b=6。但是为什么这段代码显示错误而不是打印b=6。但是当我删除函数中的b=33时,代码运行良好&打印b=6。但是为什么呢 b = 6 def f(a): print(a) print(b) b = 33 f(20) 使用非本地b…嗨@John Zwinck,我搜索了它,但找不到。你能帮我链接一下吗?因为我是新来的。@John Zwinck我不认为这是一个复制品。这是关于一种特定的行为,而不是关于一般的全局词的使用。@失眠患者:是的,当

我已经在全局上声明了b=6。但是为什么这段代码显示错误而不是打印b=6。但是当我删除函数中的b=33时,代码运行良好&打印b=6。但是为什么呢

b = 6
def f(a):
      print(a)
      print(b)
      b = 33

f(20)

使用
非本地b
…嗨@John Zwinck,我搜索了它,但找不到。你能帮我链接一下吗?因为我是新来的。@John Zwinck我不认为这是一个复制品。这是关于一种特定的行为,而不是关于一般的全局词的使用。@失眠患者:是的,当然是。OP真的应该至少在他们的问题中包含错误消息。