猿问

UnboundLocalError:局部变量…在赋值之前被引用

import hmac, base64, hashlib, urllib2

base = 'https://.......'


def makereq(key, secret, path, data):

    hash_data = path + chr(0) + data

    secret = base64.b64decode(secret)

    sha512 = hashlib.sha512

    hmac = str(hmac.new(secret, hash_data, sha512))


    header = {

        'User-Agent': 'My-First-test',

        'Rest-Key': key,

        'Rest-Sign': base64.b64encode(hmac),

        'Accept-encoding': 'GZIP',

        'Content-Type': 'application/x-www-form-urlencoded'

    }


    return urllib2.Request(base + path, data, header)

错误:文件“ C:/Python27/btctest.py”,makereq中的第8行,hmac = str(hmac.new(secret,hash_data,sha512))UnboundLocalError:分配前已引用局部变量“ hmac”


有人知道为什么吗?谢谢


慕尼黑8549860
浏览 536回答 3
3回答

宝慕林4294392

您正在hmac函数范围内重新定义变量,因此import语句的全局变量不在函数范围内。重命名function-scopehmac变量应该可以解决您的问题。
随时随地看视频慕课网APP

相关分类

Python
我要回答