原始代码如下:
import fake_useragent
from fake_useragent import UserAgent
def getHeader():
UserAgent = UserAgent().random;
headers = {'User-Agent': UserAgent}
return headers
if __name__ == '__main__':
getHeader()
错误如下:
意思说局部变量‘UserAgent’前边没有定义。注意这里提示是局部变量,一开始定义的为全局变量。
UnboundLocalError: local variable 'UserAgent' referenced before assignment
不算正确的正确做法:
为全局变量重新赋值,然而这样全局变量就改变了。用global 声明此处的UserAgent是全局的
def getHeader():
global UserAgent
UserAgent = UserAgent().random;
headers = {'User-Agent': UserAgent}
return headers
正确的做法:
局部变量名和全局变量名重名了,若不想赋值,这里应该把局部变量的名字改掉!!
def getHeader():
newUserAgent = UserAgent().random;
headers = {'User-Agent': newUserAgent }
return headers

本文探讨了Python中局部变量在未赋值前被引用所引发的UnboundLocalError异常,通过实例展示了如何避免这一常见错误,包括使用全局变量声明和更正变量命名的方法。
1601

被折叠的 条评论
为什么被折叠?



