开发者

Python Attribute error

having problems with this error in python:

File "F:\dykrstra", line 36, in route
while node.label != node.prevNode.label:
AttributeError: 'NoneType' object has no attribute 'label'

Inside this while loop:

 while node.label != node.prevNode.label:
    node = node.prevNode
    labels.append(node.label)

I think it relates to this:

   def __init__(self, label):
        self.label = label
        self.neighbours = []
        self.distances = []
        self.prevNode = None
        self.totalDis开发者_StackOverflowtance = 0

I'm not sure why prevNode doesn't like the nothing being assigned to it, please help.


Your constructor sets self.prevNode to None, and later you try to access node.prevNode.label, which is like trying to access None.label. None doesn't have any attributes, so trying to access any will give you an AttributeError.


As per the other answers (and the error message) you are accessing None.label. If it is expected that node might be None, then you will need to check for it before appending it.

while node.label != node.prevNode.label:
    node = node.prevNode
    if node is not None:
        labels.append(node.label)


Exception AttributeError happens when attribute of the object is not available. An attribute reference is a primary followed by a period and a name.

So basically you need to double check your object and the attribute name.

For example to return a list of valid attributes for that object, use dir():

dir(node)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜