UnboundLocalError: local variable 'url_request' referenced before assignment
本问题已经有最佳答案,请猛点这里访问。
我想我快疯了。
1 2 3 4 5 6 7 | url_request = 0 def somefunction(): url_request+=1 if __name__ =='__main__': somefunction() |
给出了未绑定的本地错误。我这里遗漏了什么重要概念?
您正在分配给全局变量,这意味着您需要将其标记为全局变量:
1 2 3 | def somefunction(): global url_request url_request+=1 |
当在局部作用域中为变量赋值时,假定它是局部变量,除非首先使用
对于python 2.7,我们必须输入变量类型:全局变量、局部变量。每个函数都为变量创建自己的局部范围。
从本地范围,您可以无限制地读取。您还可以调用全局对象方法,以便从全局修改变量。但不能重新分配值。
查看此代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | requests = [1,2,3] def modify(): requests.append(4) def redeclare(): requests = [10,20,30] modify() print requests # will give you [1,2,3,4] redeclare() print requests # will give you [1,2,3,4] |
发生什么事?您不能从本地作用域重新分配
关于您的代码…首先,尝试从全局范围重新分配变量。为什么?