--- Merci pour ce JSON très bien structuré, il va grandement faciliter l'analyse. Voici ce que nous allons faire étape par étape, comme demandé : --- ## 🧠 1. Rappel des notions « Récupération / Affectation » en WLangage |Terme simplifié|Nom WLangage réel|Description| |---|---|---| |Récupération|`RENVOYER(...)`|Renvoie une valeur depuis une fonction / méthode, équivalent au `return` Python.| |Affectation|`variable = valeur`|Affectation d'une valeur à une variable, comme en Python (`var = value`).| |Accès attribut|`:attribut`|Accès à l’attribut de l’objet courant (`self.attribut` en Python).| |Paramètre|`LOCAL nom est un type`|Déclaration de paramètres, équivalent à `def f(nom: type)` en Python.| Exemples : ```wlanguage PROCÉDURE maFonction() sTexte est une chaîne = "Bonjour" RENVOYER(sTexte) ``` ```python def maFonction(): sTexte = "Bonjour" return sTexte ``` --- ## 🧱 2. Rappel complet des concepts de **classes** en WLangage Le système objet de WLangage est inspiré d'autres langages objets, mais avec quelques spécificités : |Élément|En WLangage|Équivalent Python|Remarques| |---|---|---|---| |Déclaration de classe|`CLASSE MaClasse`|`class MaClasse:`|Identique| |Héritage|`CLASSE MaClasse HÉRITE MaBase`|`class MaClasse(MaBase):`|Identique| |Attribut privé|`x est un entier (PRIVÉ)`|`self._x: int` ou `__x`|Respect de l'encapsulation| |Attribut protégé|`x (PROTÉGÉ)`|`self._x`|Convention| |Attribut public|`x` ou `x (PUBLIC)`|`self.x`|Accès libre| |Constructeur|`PROCÉDURE Constructeur()`|`def __init__(self):`|Spécifique| |Destructeur|`PROCÉDURE Destructeur()`|`def __del__(self):`|Rarement utile en Python| |Méthode virtuelle|`PROCÉDURE VIRTUELLE ...`|Méthode définie mais appelée dans une classe dérivée|| |Méthode abstraite|`PROCÉDURE ABSTRAITE ...`|`@abstractmethod` (via `abc` en Python)|Pas d’implémentation ici| --- ### Exemple WLangage : ```wlanguage CLASSE MaClasse x est un entier (PROTÉGÉ) PROCÉDURE Constructeur() x = 5 PROCÉDURE getX() : entier RENVOYER(x) FIN ``` ### Équivalent Python : ```python class MaClasse: def __init__(self): self._x = 5 def get_x(self) -> int: return self._x ``` ---