Как циклы while работают с атрибутами класса - PullRequest
0 голосов
/ 15 апреля 2020
class Node:
    def __init__(self, value):
        self.value = value
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def append(self, value):
        if self.head is None:
            self.head = Node(value)
            return

        # Move to the tail (the last node)
        node = self.head
        while node.next:
            node = node.next

        node.next = Node(value)
        return

Я немного запутался в том, как работает оператор while Loop в этом контексте. Предполагается, что циклы работают до тех пор, пока выполняется условие. Я не уверен, как условие while l oop вернет true или false в этом контексте, может кто-то объяснить, пожалуйста. Спасибо!

1 Ответ

2 голосов
/ 15 апреля 2020

node.next оценивается как значение, а затем это значение оценивается как логическое значение.

В частности, если node.next = None, bool(None) == False и l oop разрывается. В противном случае bool(<Node object>) == True и l oop продолжается.

...