这段代码中如何考虑对象的初始化?
How is the initialization of objects considered in this code?
在这个class中没有名为“a”的属性那么x.a是如何考虑的呢?同样,什么是“x.a.b”、“x.a.b.c”、“x.a.b.c.d”、“x.a.b.c.d.e”以及如何考虑它们?是 b在“x.a.b”的情况下是 x.a 的属性,在“x.a.b.c”的情况下 c 是 x.a.b 的属性?简单解释一下!!!我完全糊涂了
class Node :
def __init__(self, data = None, next = None) :
self.data = data
self.next = next
x = Node(50)
x.a = Node(40)
x.a.b = Node(30)
x.a.b.c = Node(20)
x.a.b.c.d = Node(10)
x.a.b.c.d.e = Node(5)
print(x.a.b.c.d.e.data)
我想类似于第一个变量x
的声明,x.a
是该变量的隐式初始化。 x
在您初始化之前不存在,x.a
.
也不存在
所以通过初始化 x.a
你首先需要 x
存在,这意味着你不能做类似
class Node :
def __init__(self, data = None, next = None) :
self.data = data
self.next = next
x = Node(50)
x.a = Node(40)
# Then try to create the chain until C without creating first b
x.a.b.c = Node(20)
如果你测试它会指向
Traceback (most recent call last):
File "<stdin>", in <module>
AttributeError: 'Node' object has no attribute 'b'
简而言之。我认为即使节点 class 没有属性,链也只是为第一个变量创建子节点。
x
|_ Node() -> self, data, next
|_ a _
|_ Node () -> self, data, next
|_ b _
|_ Node () -> self, data, next
|_ c _
|_ ...
请注意,正如 quamrana 所提到的,只有 a
直接附加到 x
。
在这个class中没有名为“a”的属性那么x.a是如何考虑的呢?同样,什么是“x.a.b”、“x.a.b.c”、“x.a.b.c.d”、“x.a.b.c.d.e”以及如何考虑它们?是 b在“x.a.b”的情况下是 x.a 的属性,在“x.a.b.c”的情况下 c 是 x.a.b 的属性?简单解释一下!!!我完全糊涂了
class Node :
def __init__(self, data = None, next = None) :
self.data = data
self.next = next
x = Node(50)
x.a = Node(40)
x.a.b = Node(30)
x.a.b.c = Node(20)
x.a.b.c.d = Node(10)
x.a.b.c.d.e = Node(5)
print(x.a.b.c.d.e.data)
我想类似于第一个变量x
的声明,x.a
是该变量的隐式初始化。 x
在您初始化之前不存在,x.a
.
所以通过初始化 x.a
你首先需要 x
存在,这意味着你不能做类似
class Node :
def __init__(self, data = None, next = None) :
self.data = data
self.next = next
x = Node(50)
x.a = Node(40)
# Then try to create the chain until C without creating first b
x.a.b.c = Node(20)
如果你测试它会指向
Traceback (most recent call last):
File "<stdin>", in <module>
AttributeError: 'Node' object has no attribute 'b'
简而言之。我认为即使节点 class 没有属性,链也只是为第一个变量创建子节点。
x
|_ Node() -> self, data, next
|_ a _
|_ Node () -> self, data, next
|_ b _
|_ Node () -> self, data, next
|_ c _
|_ ...
请注意,正如 quamrana 所提到的,只有 a
直接附加到 x
。