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

时间:2021-03-13 20:59:20

标签: python python-3.x tensorflow keras global-variables

我正在尝试确定为什么此代码不起作用。我正在学习教程,但我一生都无法像教程中那样轻松地使用此代码。

我收到的错误是“全局变量 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)

3 个答案:

答案 0 :(得分:0)

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

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

X = None
Y = None

答案 1 :(得分:0)

解决方案实际上是删除全局声明。因为他们甚至不需要。我会为自己这么愚蠢承担一些责任。虽然我会指出我正在遵循的教程。

答案 2 :(得分:0)

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