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 Réponses :
'Retour' retournera la valeur à la fonction d'appel. p>
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. P>
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 p>
Il aurait pu utiliser Tout d'abord, rappelez-vous qu'une fonction sans valeur de retour explicite renvoie implicitement Suivant, notez que considère, à titre de contraste, maintenant, que ce soit ou non retour code>; Il n'était tout simplement pas la raison em> à le faire.
Aucun code>. Comme dans certaines langues, cela ne renvoie pas la valeur de la dernière déclaration
Dans la fonction. p>
self.items.append (élément) code> retourne déjà
Aucun code>. Donc, retourner la valeur de retour de
APPend code> a exactement le même comportement que de n'avoir aucune valeur de retour explicite. P>
isempty code>. Il se comporterait très différemment si vous aviez écrit P>
self.items code> était vide,
isempty code> retournerait toujours
aucun code>. Le
retour code> est essentiel pour réellement retour em> le résultat booléen de la comparaison. P> p>
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. retour code> 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. P>
push () code> est un exemple d'une telle fonction. P>
Parce que
append code> S modifie l'élément
code> en place, puis renvoyez
Aucun code>, il n'y a donc aucun point sur
retourner code> le résultat de Un
Ajoutez code> méthode, comme l'élément
code> 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.