Python属性错误
python中存在此错误的问题:Python属性错误,python,attributes,Python,Attributes,python中存在此错误的问题: File "F:\dykrstra", line 36, in route while node.label != node.prevNode.label: AttributeError: 'NoneType' object has no attribute 'label' 在此while循环中: while node.label != node.prevNode.label: node = node.prevNode labels.appe
File "F:\dykrstra", line 36, in route
while node.label != node.prevNode.label:
AttributeError: 'NoneType' object has no attribute 'label'
在此while循环中:
while node.label != node.prevNode.label:
node = node.prevNode
labels.append(node.label)
我认为这与此有关:
def __init__(self, label):
self.label = label
self.neighbours = []
self.distances = []
self.prevNode = None
self.totalDistance = 0
我不知道为什么prevNode不喜欢将nothing分配给它,请帮助。您的构造函数将
self.prevNode
设置为None
,然后您尝试访问node.prevNode.label
,这类似于尝试访问None.label
None
没有任何属性,因此尝试访问any将根据您正在访问的其他答案(以及错误消息)为您提供一个AttributeError
。如果预期节点
可能是无
,则需要在附加它之前检查它
while node.label != node.prevNode.label:
node = node.prevNode
if node is not None:
labels.append(node.label)
当对象的属性不可用时会发生异常。是一个主键,后跟句点和名称
因此,基本上需要仔细检查对象和属性名称
例如,要返回该对象的有效属性列表,请使用:
将
None
指定给prevNode
完全可以。但是值None
必须是属性,因此prevNode.label
将给您一个错误。您可以在控制台中尝试,键入None.label
。
dir(node)