0
votes

pile en python

Pourquoi dans le code suivant sur les utilisations retour code> avec toutes les méthodes mais non avec Ajoutez code>?

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 commentaires

Parce que append S modifie l'élément en place, puis renvoyez Aucun , il n'y a donc aucun point sur retourner le résultat de Un Ajoutez méthode, comme l'élément serait changé indépendamment.


Pourquoi vous attendez-vous autrement?


Les variables de niveau de classe sont un peu moins intuitives si vous n'êtes pas habitué à eux.


3 Réponses :


0
votes

'Retour' retournera la valeur à la fonction d'appel.

Si vous souhaitez que votre code vous indique ce qui est en haut de la pile, la fonction doit le renvoyer à l'appelant. Pensez-y comme demander à quelqu'un ce qu'il y a dans le frigo, ils vous diront ce qui est là -> c'est la valeur de retour.

Si vous mettez quelque chose sur une pile, vous savez déjà ce que c'est, donc personne n'a besoin de le renvoyer à l'appelant. Si je demande à quelqu'un de mettre mon lait dans le frigo, ils n'ont pas besoin de me dire en outre que c'était le lait


0 commentaires

0
votes

Il aurait pu utiliser retour ; Il n'était tout simplement pas la raison à le faire.

Tout d'abord, rappelez-vous qu'une fonction sans valeur de retour explicite renvoie implicitement Aucun . Comme dans certaines langues, cela ne renvoie pas la valeur de la dernière déclaration Dans la fonction.

Suivant, notez que self.items.append (élément) retourne déjà Aucun . Donc, retourner la valeur de retour de APPend a exactement le même comportement que de n'avoir aucune valeur de retour explicite.

considère, à titre de contraste, isempty . Il se comporterait très différemment si vous aviez écrit xxx

maintenant, que ce soit ou non self.items était vide, isempty retournerait toujours aucun . Le retour est essentiel pour réellement retour le résultat booléen de la comparaison.


0 commentaires

0
votes

retour est destiné à fournir des informations à l'intérieur de la fonction à l'appelant et est utilisée lorsque l'appelant doit interroger des informations à partir d'un ensemble d'objets.

Certaines fonctions ne servent pas au but de poser des informations, mais plutôt en tant que directives commandant des actions sur un objet et, étant donné que cette fonction n'a pas pour but de générer des informations, elles n'ont pas besoin de renvoyer quoi que ce soit. push () est un exemple d'une telle fonction.


0 commentaires