Browse Source

more chapter 6

master
Dimitri Merejkowsky 5 years ago
parent
commit
a0a93a90bf
1 changed files with 50 additions and 12 deletions
  1. +50
    -12
      sessions/python-06.md

+ 50
- 12
sessions/python-06.md View File

@@ -12,18 +12,20 @@ Un nouveau built-in: `id()`

L'adresse de l'objet pointé par la variable:

```
```python
>>> a = 42532
>>> id(a)
94295009035968
>>> b = a
>>> id(b) # même objet
94295009035968
>>> c = 42532 # objet différent, même valeur
>>> c = 42532 # objet différent
>>> id(c)
140400601470800
```

On en aura besoin tout à l'heure.
Notez bien les deux objets différents (le fait que
l'objet *pointé* ait la même valeur n'a pas d'importance)

# Paradigmes

@@ -124,21 +126,23 @@ Une autre adresse mémoire, donc un objet différent.

# Méthodes

Une fonction dans une classe
Une fonction dans une classe:

```
```python
class MyObject:
def my_method(the_object):
print("hello", the_object)
```

\vfill

C'est tout!

# Méthodes - 2

La méthode n'existe pas en dehors de la classe - souvenez vous des cellules !

```
```python
>>> my_method()
NameError
>>> object = MyObject()
@@ -148,8 +152,11 @@ Hello, <MyObject at 0x7f52c9f6d6d8>

# Méthodes - 2

```
>>> object.my_method()
```.python
>>> object = MyObject()
>>> object
<MyObject at 0x7f52c9f6d6d8>
>>>> object.my_method()
Hello, <MyObject at 0x7f52c9f6d6d8>
```

@@ -199,7 +206,7 @@ class MyObject:

```python
>>> object = MyObject()
>>> object.attribute # ici l'attribut n'existe pas
>>> object.attribute # l'attribut n'existe pas
AttributError
>>> object.attribute = 42 # maintenant oui
>>> object.attribute
@@ -223,10 +230,10 @@ class MyObject:

```python
>>> object = MyObject()
>>> object.print_attribute() # ici l'attribut n'existe pas
>>> object.print_attribute() # l'attribut n'existe pas
AttributError
>>> object.attribute = 42
>>> object.print_attribute() # ça marche
>>> object.print_attribute() # maintenant oui
42
>>> object.change_attribute(43)
>>> object.attribute
@@ -490,7 +497,9 @@ Aujourd'hui on va utiliser `numbersapi.com`
Example: On fait une requête sur `http://numbersapi.com/42`, on récupère du texte
contenant un fait intéressant (*trivia* en anglais) à propos du nombre 42 .

# Squelette
# Code de départ

Voir sur GitHub: https://github.com/E2L/cours-python/blob/master/sources/numbers/numbers_proc.py

```python
import sys
@@ -560,3 +569,32 @@ def get_trivia(self, number):
url = self.build_url(number)
return self.do_request(url)
```


# Code final

Voir sur GitHub:
https://github.com/E2L/cours-python/blob/master/sources/numbers/numbers_object.py


# Pour la prochaine fois - Exercice 1


Partir des sources dans le répertoire `hangman`:

https://github.com/E2L/cours-python/tree/master/sources/hangman

* Rajouter la gestion des scores (dans `scores.py`) au code exsistant
du jeu du pendu (dans `hangman.py`)


* Refactorer en essayant d'introduire des classes

# Pour la prochaine fois - Exercice 2

Partir du code dans `numbers_object.py`, rajouter la getsion
des autres URL de http://numbersapi.com

# Des questions? Du code?

Envoyez-moi un e-mail à `d.merej@gmail.com` :)