【python】local variable 'UserAgent' referenced before assignment

 原始代码如下:

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

猜你喜欢

转载自blog.csdn.net/github_39570717/article/details/88355528