class Neuralnetwork(data):
def __init__(self, data):
self.data = data
print(data)
if __name__ == "__main__":
Neuralnetwork(3)
我原本希望输出数字3,但我一直收到错误:数据未定义。但我认为我在实例化类并向其传递值时定义了数据?
答案 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