Fixing UnboundLocalError revolving around "local variable ' ' referenced before assignment."

I am trying to execute a translation with a module, though keep getting this error message relating to some of my variables:

UnboundLocalError: local variable 'usedWord' referenced before assignment

Here's my code for the reference:

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

Now I don't understand why I'm getting that error, or what the error is telling me. I apologize if this is an easy fix, though I've looked around and haven't found anything of significant use.

Thanks and I appreciate the help!

Answers


It looks to me that the problem is in the finalized_message_text. You should initialize usedWord = "" before the for loop. That should fix it. Or add the final Else statement to initialize usedWord = ""


Need Your Help

Enable Data Service on new WSO2 - ESB installation

service wso2 esb migrating

I am trying to migrate an installation of WSO2 - ESB from an old 2003 server to a new 2012 server. The old server had version 2.0.2 while the new server has version 4.8.1. The application is runnin...