\begin{questions}
\item Réponse \choix[d]. En effet, la méthode calcule la différence entre la valeur de l'argument \texttt{a} et la valeur de \texttt{self.an}, qui correspond à l'année (sans doute de naissance) de Hugo. Il s'agit donc ici de $2020-1999=21$.

\item Réponse \choix[b]. En effet, dans la déclaration de la méthode \texttt{nc}, les\linebreak variables \texttt{nom} et \texttt{couleur} ne sont pas définies. Il aurait fallu écrire\linebreak \texttt{self.nom + self.couleur} pour que cela soit correct.

Rappelons que la déclaration d'une méthode peut faire appel:

\begin{itemize}
\item à des variables locales (qui doivent être initialisées avant utilisation et qui sont \og détruites \fg{} à la fin de la méthode);

\item à des attributs de l'objet lui-même qui  \og appartiennent \fg{} à l'objet, qui sont partagés entre toutes les méthodes, et qui subsistent en mémoire jusqu'à ce que l'objet lui-même soit détruit. Dans ce cas, il faut y faire référence en utilisant le paramètre \texttt{self}, qui est le premier argument de toute méthode.
\end{itemize}

\item Réponse \choix[b]. Ici, tout est correctement défini. Ainsi, la méthode\linebreak \texttt{is}\verb+_+\texttt{square} regarde si $a^2+b^2$ est bien égal à $c^2$, ce qui est le cas pour notre exemple. \og True \fg{}  est donc affiché.
\end{questions}
