代码之家  ›  专栏  ›  技术社区  ›  Rishik Mani

python:外部类中未定义变量

  •  0
  • Rishik Mani  · 技术社区  · 6 年前

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

    下面是我的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
    

    每当调用类初始化时,我得到一个输出 未定义名称“Training_Labels”。 这阻止了程序的执行。有人能指出我可能缺少什么吗?

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

    3 回复  |  直到 6 年前
        1
  •  1
  •   quamrana    6 年前

    这是来自链接的代码摘要:

    # 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 方法。

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

        2
  •  0
  •   mb0850    6 年前

    从共享代码中,我可以理解的是,你已经混淆了 类和实例变量 .

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

        3
  •  0
  •   ergesto    6 年前

    你需要改变这个 Model.train_on_data(X_train, y_train) model.train_on_data(X_train, y_train) 在main_mnist.py中,在simple.py文件中 https://pastebin.com/JZArvWC3