mirror of
https://github.com/Ladebeze66/coffreobsidian.git
synced 2025-12-16 13:47:47 +01:00
76 lines
2.2 KiB
Markdown
76 lines
2.2 KiB
Markdown
|
||
---
|
||
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
|
||
```
|
||
|
||
---
|