使用Class中的变量在python中实例化一个类

时间:2017-04-04 00:08:01

标签: python class instantiation

class Neuralnetwork(data):

    def __init__(self, data):    
         self.data = data

    print(data)



if __name__ == "__main__":
    Neuralnetwork(3)

我原本希望输出数字3,但我一直收到错误:数据未定义。但我认为我在实例化类并向其传递值时定义了数据?

2 个答案:

答案 0 :(得分:1)

确实在实例化时定义了data属性,但在实例化之前,print行在类定义中执行。如果您要打印数据,请尝试print(self.data) 中的__init__

修改:我最初没有注意到您将自己的课程声明为class Neuralnetwork(data)。该语法意味着您正在创建一个继承自data类的类。由于该类不存在,您将遇到错误。只需删除它,然后使用class Neuralnetwork

答案 1 :(得分:0)

您当前的系统具有从数据继承的Neuralnetwork。您目前要做的事情最好用__init__方法完成。你也真的不应该在这样的课堂上做印刷。

Python没有私有方法和函数的概念,因此可以使用点表示法访问所有内容。有人说,在函数/方法/字段的开头添加_会告诉你的类/库的用户它应该被视为私有。

class Neuralnetwork(object):

    def __init__(self, data):    
         self.data = data

    print(self.data)



if __name__ == "__main__":
    nuralnetwork1 = Neuralnetwork(3)
    print(nuralnetwork1.data) # Prints the number 3 to the console
    nuralnetwork2 = Neuralnetwork(2)
    print(nuralnetwork2.data) # Prints the number 2 to the console
    print(nuralnetwork1.data + nuralnetwork2.data)  # Prints the number 5 to the console