全局变量 X 未定义错误 | Python逻辑错误

Global Variable X is not defined error | Python Logic Error

我正在尝试确定为什么此代码不起作用。我正在学习教程,但终究无法让这段代码像在教程中那样轻松地工作。

我收到的错误是“未定义全局变量 X”。

当我调试函数时,它会直接跳过全局声明。 PyCharm 还警告声明未在模块级别定义。

    def sentence_to_indices(sentence_words, word_to_index, max_len, i):
        global X, Y # Global variable 'X' & 'Y' is undefined at the module level
        sentence_indices = []
        for j, w in enumerate(sentence_words):
            try:
                index = word_to_index[w]
            except:
                UNKS.append(w)
                w = cleared(w)
                try:
                    index = word_to_index[w]
                except:
                    index = word_to_index['unk']
                    unks.append(w)
            X[i, j] = index

这里是调用函​​数的地方

 try:
     for i, tk_lb in enumerate(cleaned_tokens_list):
            tokens, label = tk_lb
            sentence_to_indices(tokens, word_to_index, max_len, i)
            Y[i] = label
    except Exception as e:
        print(e)

您需要先在函数外声明变量,然后才能与 global 一起使用。

尝试在代码开头执行此操作:

X = None
Y = None

解决方案实际上是删除全局声明。因为他们甚至不需要。我会为自己的愚蠢承担一些责任。尽管我会指责我正在关注的教程。

您没有在函数外定义 X 和 Y。您可以只删除全局或在此函数之前定义 X 和 Y