стек в Python - PullRequest
       20

стек в Python

0 голосов
/ 25 февраля 2019

Почему в следующем коде используется return со всеми методами, но не с append?

class Stack:
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return self.items == []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        return self.items.pop()

    def peek(self):
        return self.items[len(self.items)-1]

    def size(self):
        return len(self.items)

Ответы [ 3 ]

0 голосов
/ 25 февраля 2019

Можно было бы использовать return;просто не было причины для этого.

Во-первых, помните, что функция без явного возвращаемого значения неявно возвращает None.Как и в некоторых языках, он не возвращает значение последнего оператора в функции.

Далее, обратите внимание, что self.items.append(item) уже возвращает None.Таким образом, возвращаемое возвращаемое значение append ведет себя точно так же, как и отсутствие явного возвращаемого значения.

Для контраста рассмотрим isEmpty.Он бы вел себя совсем иначе, если бы вы написали

def isEmpty(self):
    self.items == []

Теперь, независимо от того, был ли self.items пустым, isEmpty всегда будет возвращать None.return необходим для фактического возврата логического результата сравнения.

0 голосов
/ 25 февраля 2019

return предназначен для предоставления вызывающей стороне информации из функции и используется, когда вызывающей стороне необходимо запрашивать информацию из некоторого набора объектов.

Некоторые функции не служат для запросаинформация, а скорее как директивы, управляющие действием над объектом, и поскольку целью такой функции является не генерация информации, им не нужно ничего возвращать.push() является примером такой функции.

0 голосов
/ 25 февраля 2019

return возвращает значение обратно вызывающей функции.

Если вы хотите, чтобы ваш код сообщал вам, что находится на вершине стека, функция должна вернуть его вызывающей функции.Подумайте об этом, как если бы вы спросили кого-то, что находится в холодильнике, они скажут вам, что там -> это возвращаемое значение.

Если вы положили что-то в стек, вы уже знаете, что это такое, так что никому не нужновернуть его звонящему.Если я прошу кого-нибудь положить мое молоко в холодильник, ему не нужно дополнительно говорить мне, что это было молоко

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...