Improve Python chapter with introspection
This commit is contained in:
parent
a439c57757
commit
71b4c7a7fd
|
@ -124,6 +124,9 @@ Nous pouvons donc utiliser ces mêmes \textbf{dunder methods} (\textbf{double-un
|
||||||
|
|
||||||
\section{Structures de données}
|
\section{Structures de données}
|
||||||
|
|
||||||
|
Le langage Python est un langage orienté objet au sens où \textbf{tout} est un objet.
|
||||||
|
Cela signifie qu'il ne se limite pas à modéliser une structure de données, mais qu'il embarque son propre comportement, avec ses méthodes.
|
||||||
|
|
||||||
Les principales structures de données sont :
|
Les principales structures de données sont :
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
@ -135,9 +138,6 @@ Les principales structures de données sont :
|
||||||
|
|
||||||
\subsection{Dictionnaires}
|
\subsection{Dictionnaires}
|
||||||
|
|
||||||
Dans le langage Python, un dictionnaire est un objet.
|
|
||||||
Cela signifie qu'il ne se limite pas à modéliser une structure de données, mais qu'il embarque son propre comportement, avec ses méthodes.
|
|
||||||
|
|
||||||
Au hasard des internets multimédias, on est tombé sur un morceau de code à base de \texttt{pop} et de réinitialisation.
|
Au hasard des internets multimédias, on est tombé sur un morceau de code à base de \texttt{pop} et de réinitialisation.
|
||||||
Quelque chose comme ceci:
|
Quelque chose comme ceci:
|
||||||
|
|
||||||
|
@ -179,6 +179,40 @@ en gros, ça te retourne la valeur de la clé si elle existe, et si pas, cela te
|
||||||
|
|
||||||
Ca évite, dans une boucle, de vérifier si la clé existe déjà, et si pas, de la créer
|
Ca évite, dans une boucle, de vérifier si la clé existe déjà, et si pas, de la créer
|
||||||
|
|
||||||
|
\section{Introspection}
|
||||||
|
|
||||||
|
\begin{minted}{python}
|
||||||
|
|
||||||
|
def on_command_1():
|
||||||
|
print("Oune")
|
||||||
|
|
||||||
|
def on_command_2():
|
||||||
|
print("Dos")
|
||||||
|
|
||||||
|
def on_command_3():
|
||||||
|
print("Tresse")
|
||||||
|
|
||||||
|
def prrrt():
|
||||||
|
print("Won't be printed")
|
||||||
|
\end{minted}
|
||||||
|
|
||||||
|
Tu peux retrouver les trois méthodes \texttt{on\_command\_*}` via la fonction `dir()`:
|
||||||
|
|
||||||
|
\begin{minted}{python}
|
||||||
|
>>> import module_chelou
|
||||||
|
>>> dir(module_chelou)
|
||||||
|
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'on_command_1', 'on_command_2', 'on_command_3', 'prrrt']
|
||||||
|
|
||||||
|
>>> for function_name in [x for x in dir(module_chelou) if "on_command_" in x]:
|
||||||
|
... getattr(module_chelou, function_name)()
|
||||||
|
...
|
||||||
|
Oune
|
||||||
|
Dos
|
||||||
|
Tresse
|
||||||
|
|
||||||
|
```
|
||||||
|
\end{minted}
|
||||||
|
|
||||||
\section{The Zen of Python}
|
\section{The Zen of Python}
|
||||||
|
|
||||||
(aussi connue sous PEP20 ;)) \index{PEP!PEP20}
|
(aussi connue sous PEP20 ;)) \index{PEP!PEP20}
|
||||||
|
|
Loading…
Reference in New Issue