Skip to content

Commit eeb0a5e

Browse files
authored
Update oop_intro.md
1 parent f0f6ce0 commit eeb0a5e

1 file changed

Lines changed: 19 additions & 19 deletions

File tree

lectures/oop_intro.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,13 @@ Alors, dans laquelle de ces catégories Python s'inscrit-il ?
6060

6161
En réalité, Python est un langage pragmatique qui mêle les styles orienté objet, fonctionnel et procédural, plutôt que d'adopter une approche puriste.
6262

63-
D'une part, cela permet à Python et à ses utilisateurs de sélectionner les bons aspects de différents paradigmes.
63+
D'une part, cela permet à Python et à ses utilisateurs de retenir les meilleurs aspects de différents paradigmes.
6464

6565
D'autre part, ce manque de pureté peut parfois prêter à confusion.
6666

6767
Heureusement, cette confusion est réduite au minimum si vous comprenez qu'à un niveau fondamental, Python *est* orienté objet.
6868

69-
Par cela, nous voulons dire qu'en Python, *tout est objet*.
69+
Nous entendons par là qu'en Python, *tout est objet*.
7070

7171
Dans ce cours, nous expliquons ce que signifie cette affirmation et pourquoi elle est importante.
7272

@@ -81,7 +81,7 @@ Nous utiliserons la bibliothèque tierce suivante
8181

8282
## Objets
8383

84-
```{index} single: Python; Objects
84+
```{index} single: Python; Objets
8585
```
8686

8787
En Python, un *objet* est une collection de données et d'instructions conservées dans la mémoire de l'ordinateur, qui comprend
@@ -99,7 +99,7 @@ Ces concepts sont définis et discutés successivement ci-dessous.
9999
```{index} single: Python; Type
100100
```
101101

102-
Python propose différents types d'objets, afin d'accommoder différentes catégories de données.
102+
Python propose différents types d'objets, afin de prendre en charge différentes catégories de données.
103103

104104
Par exemple
105105

@@ -136,7 +136,7 @@ tags: [raises-exception]
136136
'300' + 400
137137
```
138138

139-
Ici, nous mélangeons les types, et il n'est pas clair pour Python si l'utilisateur souhaite
139+
Ici, nous mélangeons les types, et Python ne peut pas déterminer si l'utilisateur souhaite
140140

141141
* convertir `'300'` en entier puis l'ajouter à `400`, ou
142142
* convertir `400` en chaîne puis la concaténer avec `'300'`
@@ -146,7 +146,7 @@ Certains langages pourraient tenter de deviner, mais Python est *fortement typé
146146
* Le type est important, et la conversion de type implicite est rare.
147147
* Python répondra plutôt en levant une `TypeError`.
148148

149-
Pour éviter l'erreur, vous devez clarifier en modifiant le type concerné.
149+
Pour éviter l'erreur, vous devez lever l'ambiguïté en modifiant le type concerné.
150150

151151
Par exemple,
152152

@@ -157,10 +157,10 @@ int('300') + 400 # Pour additionner en tant que nombres, convertir la chaîne
157157
(identity)=
158158
### Identité
159159

160-
```{index} single: Python; Identity
160+
```{index} single: Python; Identité
161161
```
162162

163-
En Python, chaque objet possède un identifiant unique, qui aide Python (et nous-mêmes) à suivre l'objet.
163+
En Python, chaque objet possède un identifiant unique, qui aide Python (et nous-mêmes) à garder la trace de l'objet.
164164

165165
L'identité d'un objet peut être obtenue via la fonction `id()`
166166

@@ -180,7 +180,7 @@ L'identité d'un objet est en fait simplement l'adresse de l'objet en mémoire.
180180

181181
### Contenu de l'objet : données et attributs
182182

183-
```{index} single: Python; Content
183+
```{index} single: Python; Contenu
184184
```
185185

186186
Si nous posons `x = 42`, alors nous créons un objet de type `int` qui contient
@@ -205,23 +205,23 @@ Lorsque Python crée cet objet entier, il stocke avec lui diverses informations
205205

206206
Tout nom suivant un point est appelé un *attribut* de l'objet situé à gauche du point.
207207

208-
* par exemple, ``imag`` et `__class__` sont des attributs de `x`.
208+
* par exemple, `imag` et `__class__` sont des attributs de `x`.
209209

210210
Nous voyons dans cet exemple que les objets possèdent des attributs contenant des informations auxiliaires.
211211

212212
Ils possèdent également des attributs qui agissent comme des fonctions, appelés *méthodes*.
213213

214-
Ces attributs sont importants, alors discutons-en en profondeur.
214+
Ces attributs sont importants ; examinons-les plus en détail.
215215

216216
(methods)=
217217
### Méthodes
218218

219-
```{index} single: Python; Methods
219+
```{index} single: Python; Méthodes
220220
```
221221

222222
Les méthodes sont des *fonctions regroupées avec les objets*.
223223

224-
Formellement, les méthodes sont des attributs d'objets qui sont **appelables** -- c'est-à-dire des attributs qui peuvent être appelés comme des fonctions
224+
Formellement, les méthodes sont des attributs d'objets qui sont **appelables** --- c'est-à-dire des attributs qui peuvent être appelés comme des fonctions
225225

226226
```{code-cell} python3
227227
x = ['foo', 'bar']
@@ -259,7 +259,7 @@ x[0] = 'aa' # Affectation d'élément via la notation entre crochets
259259
x
260260
```
261261

262-
Il ne semble pas qu'aucune méthode ne soit utilisée ici, mais en fait la notation d'affectation entre crochets n'est qu'une interface pratique vers un appel de méthode.
262+
On pourrait croire qu'aucune méthode n'est utilisée ici, mais en fait la notation d'affectation entre crochets n'est qu'une interface pratique pour appeler une méthode.
263263

264264
Ce qui se passe réellement, c'est que Python appelle la méthode `__setitem__`, comme suit
265265

@@ -273,7 +273,7 @@ x
273273

274274
## Inspection avec Rich
275275

276-
Il existe un joli paquet appelé [rich](https://github.com/Textualize/rich) qui
276+
Il existe un package très pratique appelé [rich](https://github.com/Textualize/rich) qui
277277
nous aide à visualiser le contenu d'un objet.
278278

279279
Par exemple,
@@ -323,7 +323,7 @@ incohérent et plus difficile à retenir.
323323
Pour éviter cela, le créateur de Python a choisi d'ajouter
324324
`len()` comme fonction intégrée, afin de souligner que `len()` est la convention.
325325

326-
Ceci dit, Python *reste* néanmoins orienté objet en coulisses.
326+
Cela dit, Python *reste* orienté objet en coulisses.
327327

328328
En effet, la liste `x` évoquée ci-dessus possède une méthode appelée `__len__()`.
329329

@@ -334,7 +334,7 @@ Autrement dit, le code suivant est équivalent :
334334
```{code-cell} python3
335335
x = ['a', 'b']
336336
len(x)
337-
```
337+
```
338338
et
339339

340340
```{code-cell} python3
@@ -352,7 +352,7 @@ Le message de ce cours est clair :
352352
Cela inclut non seulement les listes, les chaînes de caractères, etc., mais aussi des choses moins évidentes, telles que
353353

354354
* les fonctions (une fois qu'elles ont été chargées en mémoire)
355-
* les modules (idem)
355+
les modules (de même)
356356
* les fichiers ouverts en lecture ou en écriture
357357
* les entiers, etc.
358358

@@ -416,4 +416,4 @@ print(callablels)
416416

417417

418418
```{solution-end}
419-
```
419+
```

0 commit comments

Comments
 (0)