Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在这段代码中如何考虑对象的初始化?_Python_Python 3.x_Class_Object_Attributes - Fatal编程技术网

Python 在这段代码中如何考虑对象的初始化?

Python 在这段代码中如何考虑对象的初始化?,python,python-3.x,class,object,attributes,Python,Python 3.x,Class,Object,Attributes,在这个类中没有称为“a”的属性,那么x.a是如何考虑的呢?同样,“x.a.b”、“x.a.b.c”、“x.a.b.c.d”、“x.a.b.c.d.e”是什么?它们是如何考虑的?在“x.a.b”的情况下,b是x.a的属性,在“x.a.b.c”的情况下,c是x.a.b的属性?快解释!!!我完全搞糊涂了我认为与第一个变量x的声明类似,x.a是该变量的隐式初始化x在初始化之前不存在,x.a也不存在 因此,通过初始化x.a您首先需要x存在,这意味着您不能执行类似的操作 类节点: 定义初始化(self,da

在这个类中没有称为“a”的属性,那么x.a是如何考虑的呢?同样,“x.a.b”、“x.a.b.c”、“x.a.b.c.d”、“x.a.b.c.d.e”是什么?它们是如何考虑的?在“x.a.b”的情况下,b是x.a的属性,在“x.a.b.c”的情况下,c是x.a.b的属性?快解释!!!我完全搞糊涂了我认为与第一个变量
x
的声明类似,
x.a
是该变量的隐式初始化
x
在初始化之前不存在,
x.a
也不存在

因此,通过初始化
x.a
您首先需要
x
存在,这意味着您不能执行类似的操作

类节点:
定义初始化(self,data=None,next=None):
self.data=数据
self.next=下一个
x=节点(50)
x、 a=节点(40)
#然后尝试创建链直到C,而不创建第一个b
x、 a.b.c=节点(20)
如果你测试出来,它会指向你

回溯(最近一次呼叫最后一次):
文件“”,位于
AttributeError:“节点”对象没有属性“b”
简而言之。我认为,即使Node类没有属性,链也只是为第一个变量创建子节点

x 
|_ Node() -> self, data, next
|_ a _
     |_ Node () -> self, data, next
     |_ b _
          |_ Node () -> self, data, next
          |_ c _ 
               |_ ...

请注意,正如quamrana所提到的,只有
a
直接连接到
x

Ok,但是您如何看待
x=Node(50)
x
从何而来?顺便说一句,我从名称
Node
猜测,它具有
next
属性,您正在创建的每个节点都应该具有其
next
属性指代下一个
节点,
节点的每个实例都有不同的额外属性。也就是说:
x
具有
a
属性,但是
x
没有任何
b
属性<代码>属性。类似地,
b
c
属性具有
d
属性,但不是
x
,也不是
a
,也不是
b
,也不是
e
。但这正是该声明所代表的,不是吗?它并没有分配给
节点的
下一个
属性
,它只是创建了一个新的
x
属性,这个属性可能与
节点
类没有任何关系。我只是想确保您和所有访问这里的未来程序员都知道,
x
只被赋予了一个额外的属性,因为您声明:
链只是为第一个变量创建子节点
,我猜您的意思是链在
x
上创建了许多节点,这不是真的。哦,当然,现在我注意到我表达的方式是错误的,我很抱歉,您认为我应该更正文本吗?即使在我的“草图”中,我也试图表示
b
只与
a
相关,而不是直接与
x
相关。也许可以将草图再扩展一个层次。。。