amespace}}
====== Python: modules et espaces de nommage ======
Lorsque nous avons parlé de la notion... xpliqué que nous pouvions avoir une variable d'un nom donné, par exemple une variable *x*, qui coexiste... fonctionne avec ce qu'on appelle des **espaces de nommage**.
Un espace de nommage regroupe un ensemble de variables appartenant à un objet. En Python, les
=== Python: importation des modules et espaces de nommage ======
Nous avons vu dans une précédente vid... férents mécanismes d'importation avec l'espace de nommage des modules. C'est ce que nous allons couvrir... ython egg.py`. Si vous voulez voir les espaces de nommage de ces modules, vous pouvez utiliser **l'inst... ce contexte ; et si vous voulez voir l'espace de nommage d'un module importé, vous pouvez utiliser `va
héritage est en fait liée à la notion d'espace de nommage**. Une classe a son propre espace de nommage. Et une instance a son propre espace de nommage. Lorsque vous recherchez un attribut dans une instance, vous allez le chercher dans l'espace de nommage de l'instance. Si vous ne le trouvez pas dans
tres d'une fonction**.
<code python>
def agenda(nom, prenom, tel):
""" retourne un dictionnaire co... s valeurs passées
en paramètre """
return {'nom': nom, 'prenom': prenom, 'tel': tel}
# Lors de l'appel de la fonction, c'est la position
# de l' arg...
{'nom': 'Doe', 'prenom': 'John', 'tel': '06 52 47 66 87
on se définit avec l'instruction *def*, suivie du nom de la fonction, dans l'exemple qui suit, on l'app... lui passer des arguments ( on peut lui passer un nombre quelconque d'arguments séparés par des virgule... alué par python, un objet fonction est créé et le nom de la fonction, *f*, va être une variable qui va ... riables en Python, une variable est simplement un nom qui référence un objet, on peut donc renommer l'
semble d'instructions contiguës indentées du même nombre de caractères. Lorsque vous faites une opérati... ltins. En dernier ressort, si on ne trouve pas un nom de variable, on le cherche dans le module builtin... )
</code>
Nous voyons des exceptions, un certain nombre de fonctions que nous avons déjà utilisées, pa... ion, c'est un objet, et qu'une variable, c'est un nom qui référence un objet, et que par conséquent, **
mme introduit [[570_importation_module_et_espaces_nommage|précédemment]], un module est donc un objet p... un (seul) fichier sur le disque;
* un espace de nom pour les variables du programme.
===== Package =... de>
Comme on le voit, le package porte **le même nom que le répertoire**, c'est-à-dire que, de même qu... donc, que l'on veut exposer à python), un fichier nommé %%__init__.py%%; ce n'est plus le cas depuis Py
jet module. Un module en fait contient un certain nombre de fonctions, d'opérations à effectuer et l'id... le, on utilise l'**instruction import** suivie du nom du module. Maintenant que j'ai importé ce module,... sons un dir de random. On voit qu'on a un certain nombre de méthodes, et maintenant, je vais regarder q... de randint. Que fait randint ? Il me retourne un nombre au hasard choisi entre a et b en incluant a et
rtie de cette semaine, nous couvrirons un certain nombre de sujets très importants pour commencer à fai... == Semaine 5: Itération, importation et espace de nommage =====
Cette séquence aborde deux notions clé... ython: la **notion d'itérateur** et **d'espace de nommage**. Les **itérateurs** sont ce qui vous permet... manière simple et intuitive. Et les **espaces de nommage** vous permettent d'isoler les variables dans
'', ici ''os'' a deux rôles:
- Il va définir le nom du fichier qui va être cherché sur le disque dur,... t écrits en *C*).
- ''os'' définit également le nom de la variable qui va référencer l'objet module.
... ur. Pour cela, Python va regarder dans un certain nombre de répertoires.
* Le répertoire où se trouv... e le **point d'entrée** (le point d'entrée est le nom du fichier que vous passez à l'interpréteur lorsq
instance, si on ne le trouve pas dans l'espace de nommage de l'instance, on remonte l'arbre d'héritage ... st représentée par des parenthèses mises après le nom de la classe, et dans ces parenthèses, on déclare... instance, si je ne le trouve pas dans l'espace de nommage de l'instance, je remonte dans sa classe; si ... teur de la super-classe "Phrase" dans l'espace de nommage de la super-classe.
Vous remarquerez ici que
ance sur une séquence est linéaire en fonction du nombre d'éléments que j'ai dans ma séquence. Là, évid... ppartenance sur la liste qui est linéaire avec le nombre d'éléments. Ça, c'est un problème parce qu'en ... ire un test d'appartenance qui est indépendant du nombre d'éléments.
Une deuxième limitation des séque... reprends : écrire *t['Alice'] = 35*pour lier un nom à un âge, donc "indicer" mes séquences non plus a
es chaînes de caractères contiennent également de nombreuses méthodes qui permettent de manipuler ces c... sur les **méthodes** qui utilisent simplement un nom sans underscore. Nous remarquons que ces méthodes ont des noms qui ont l'air assez explicites. Par exemple, la ... nsuite, sur les chaînes de caractères, un certain nombre de méthodes qui me permettent de faire des **c
ez pas cette notion, vous risquez d'introduire de nombreux bugs dans vos programmes. Regardons maintena... de mes variables, que l'on appellera **espace de nommage** plus tard, et à droite, j'ai l'**ensemble d... **compteur de références** qui va représenter le nombre de variables qui référencent cet objet, et un ... Il est de nouveau très important de minimiser le nombre de copies de nos objets en mémoire, et ce sont
**classe** avec l'instruction **class** suivie du nom de la classe, et je vais faire une classe qui ne ... nt rien.
<code python>
# Définition d'une classe nommée C
class C:
pass
</code>
Une classe C existe... exemple on va créer une nouvelle classe que l'on nommera *Phrase*.
<note>
Par convention pour nommer les classe on utilise le **CamelCase**
</note>
<code