【问题标题】:'NoneType' object has no attribute 'element'“NoneType”对象没有属性“元素”
【发布时间】:2022-02-06 18:30:53
【问题描述】:

为什么在 while 循环内打印 head.element 时在下面的代码中我没有收到任何错误 但是循环外的相同代码打印代码让我出错?

class node:
  def __init__(self, element):
        self.element = element
        self.next = None


head = None

node1 = node(1)
node2 = node(2)

head = node1
node1.next = node2

while head != None:
    print(head.element)
    head = head.next

print(head.element)

【问题讨论】:

  • 因为你在循环直到 head == None。因此,一旦循环停止,您的下一行将尝试打印 None.element
  • @BTables 谢谢
  • @xxmira,如果答案对您有用,您应该接受它以将其标记为有效答案。欢迎使用 Stack Overflow!
  • @FLAK-ZOSO 谢谢你的建议

标签: python data-structures linked-list nonetype


【解决方案1】:

错误是由您的最后一行代码引发的:

print(head.element)

当/如果流到达上述行时,head 变量为None,因为while 循环仅在head == None 时结束。

while head != None:
    print(head.element)
    head = head.next # The last time this will return None

【讨论】:

    【解决方案2】:

    在最后一次迭代 while 循环中,头部是 None,您尝试打印 None 类的属性元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 2014-07-05
      • 2018-05-05
      • 2013-02-11
      • 2018-12-01
      • 2017-08-02
      相关资源
      最近更新 更多