0

我正在尝试使用模块执行翻译,但不断收到与我的一些变量相关的错误消息:

UnboundLocalError: local variable 'usedWord' referenced before assignment

这是我的参考代码:

def message_translate():
    for message in r.get_unread():
        message_text = message.body.lower()
        messageList = message_text.split()
        for word in message_text:
            if word in fullLangNames:
                usedWord = word
                index = fullLangNames.index(word)
                transLang = supportedLangs[index]
            elif word in abbrevLangNames:
                usedWord = word
                index = abbrevLangNames.index(word)
                transLang = supportedLangs[index]

        finalized_message_text = message_text.replace("/u/pleaseTranslate", "") and message_text.replace(usedWord, "")
        translation = (translator.translate(finalized_message_text, lang_from = 'en', lang_to = transLang))
        callback = (transMessage % translation)
        message.mark_as_read

现在我不明白为什么我会收到那个错误,或者这个错误告诉我什么。如果这很容易解决,我深表歉意,尽管我环顾四周并没有发现任何重要用途。

谢谢,我很感激帮助!

4

1 回答 1

1

在我看来,问题出在 finalized_message_text 中。您应该在 for 循环之前初始化 usedWord = ""。那应该解决它。或者添加最后的 Else 语句来初始化 usedWord = ""

于 2015-05-07T19:49:30.947 回答