Examen de 2017

Re: Examen de 2017

by Jean-Philippe Pellet -
Number of replies: 0

On pourrait les définir dans la méthode __init__, mais on aurait un problème de qui définir en premier par exemple si deux personnages sont les meilleures amis l'un de l'autre: vous devriez avoir créé le premier pour le passer en paramètre à la méthode __init__ du second, et inversement, ce qui n'est pas possible. On prend alors le parti de déjà réserver un champ qui s'appelle best_friend et worst_enemy, mais de l'initialiser à None dans la méthode __init__ — ce qui signifie l'absence de valeur. On leur donne ensuite une valeur si nécessaire en dehors de la méthode __init__ comme le montre le code de base.

Pour vérifier si un tel attribut est défini ou pas, vous pouvez faire, si p est du type de la classe en question:

if p.best_friend is not None:
    # p a un meilleur ami, dont le nom est p.best_friend.name

ou inversement:

if p.best_friend is None:
    # p n'a pas de meilleur ami défini

Meilleures salutations,

Jean-Philippe Pellet