Python:外部类中未定义的变量

时间:2018-06-10 17:37:07

标签: python python-3.x

我有以下代码。虽然,问题很简单,但我无法弄清楚背后的原因。

以下是我的main.py:

from model_MNIST import Model

def main():
    model = Model()

if __name__ == '__main__':
    main()

model_MNIST.py文件如下:

# some import statements
class Model(object):
    def __init__(self, input_dimensions, output_dimensions):
        # some init statements

    def train_on_data(self, training_data, training_labels):
        N = training_labels.size

每当调用类初始化时,我得到一个输出为 name' training_labels'未定义。这阻止了程序的执行。有人能指出我可能缺少的东西吗?

Edit1:请参阅该文件的共享链接。 SharedFolder

3 个答案:

答案 0 :(得分:1)

这是您链接中代码的摘要:

# some import statements
class Model(object):
    def __init__(self, input_dimensions, output_dimensions):
        # some init statements

    def train_on_data(self, training_data, training_labels):
        '''
        Multiline comment
        '''
    N = training_labels.size
    ...

在上面的代码中,最后一行是类的一部分,而不是train_on_data方法。

我认为最后一行(和其他人省略的)应该缩进为该方法的一部分。

答案 1 :(得分:0)

从共享代码中,我可以理解您与类和实例变量相混淆。

在函数train_on_data中,您有一些代码,例如self.training_labels = training_labels,但您的init方法不包含self.training_labels变量。

答案 2 :(得分:0)

您需要在main_MNIST.py中将此Model.train_on_data(X_train, y_train)更改为model.train_on_data(X_train, y_train),简单.py文件https://pastebin.com/JZArvWC3