Skip to content
GitLab
    • Explore Projects Groups Topics Snippets
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • PYTHON - Atelier MatPlotLib PYTHON - Atelier MatPlotLib
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

En prévision de l'arrivée de la forge institutionnelle INRAE, nous vous invitons à créer vos nouveaux projets sur la forge MIA.

  • Poulard Christine
  • PYTHON - Atelier MatPlotLibPYTHON - Atelier MatPlotLib
  • Wiki
  • Python_ quelques bases

Python_ quelques bases · Changes

Page history
Update Python_ quelques bases authored 2 years ago by Poulard Christine's avatar Poulard Christine
Hide whitespace changes
Inline Side-by-side
Showing
with 15 additions and 3 deletions
+15 -3
Python_-quelques-bases.md
View page @ c5053177
...@@ -155,15 +155,23 @@ def ma_fonction(param1, param2, param3): ...@@ -155,15 +155,23 @@ def ma_fonction(param1, param2, param3):
``` ```
Cas particulier des **méthodes**, avec le mot-clé **self**pour renvoyer à l'instance courante (attention, tout autre mot fait l'affaire, dont si vous l'oubliez le premier nom fourni fera office de "self" !). Cas particulier des **méthodes**, avec le mot-clé **self**pour renvoyer à l'instance courante (attention, tout autre mot fait l'affaire, dont si vous l'oubliez le premier nom fourni fera office de "self" !).
On remarque que dans le cas de la fonction **__init__** qui initialise l'instance, les **attributs** n'ont pas forcément le même nom que les paramètres, et peuvent d'ailleurs être en nombre différent ! On remarque que dans le cas de la fonction **`__init__`** qui initialise l'instance, les **attributs** n'ont pas forcément le même nom que les paramètres, et peuvent d'ailleurs être en nombre différent !
``` python ``` python
class MonObjet: class MonObjet:
""" Cette classe est là car il en faut une ; un docstring au format google
Attributes:
class_attribute (str): (class attribute) parce que j'ai envie de mettre un argument de classe
param1 (float): un attribut d'instance
somme (float): somme de deux valeurs fournies dans le __init__
"""
class_attribute = "la classe, cet attribut"
def __init__ (param1, param2, param3): def __init__ (param1, param2, param3):
self.param1 = param1 self.param1 = param1
self.somme = param2 + param3 self.somme = param2 + param3
def ma_methode(self, a, b):ab: def ma_methode(self, a, b):ab:
"""J'ajoute a et b à self.somme. """ docstring au format PEP : J'ajoute a et b à self.somme.
:param a : un truc à ajouter :param a : un truc à ajouter
:type a : entier :type a : entier
:param b : un autre truc à ajouter :param b : un autre truc à ajouter
...@@ -192,7 +200,7 @@ machin = MonObjet(4,5,6) ...@@ -192,7 +200,7 @@ machin = MonObjet(4,5,6)
bidule = machin.ma_methode(1,2) bidule = machin.ma_methode(1,2)
Un point de vocabulaire : **paramètres** et **arguments** Un point de vocabulaire : **paramètres** et **arguments**
En Python vous trouverez ces deux termes. Pour la documentation des fonctions (les "docstrings"), qui est une bonne pratique [recommandée dans les PEPs](https://peps.python.org/pep-0257/), selon le format suivi va vous demander de les définir comme `:param nom_variable: ` ([Sphinx](https://sphinx-rtd-tutorial.readthedocs.io/en/latest/docstrings.html) ) En Python vous trouverez ces deux termes. Pour la documentation des fonctions (les "docstrings"), qui est une bonne pratique [recommandée dans les PEPs](https://peps.python.org/pep-0257/), sphinx "paramètres" de les définir comme `:param nom_variable: ` ([Sphinx](https://sphinx-rtd-tutorial.readthedocs.io/en/latest/docstrings.html) ) tandis que le format Google utilise Argas... Attributes:
En théorie, les **paramètres** sont ce qui est **déclaré** dans la fonction, entre les parenthèses, et les **arguments** sont ce qui est passé lors de l'**appel** de la fonction. En théorie, les **paramètres** sont ce qui est **déclaré** dans la fonction, entre les parenthèses, et les **arguments** sont ce qui est passé lors de l'**appel** de la fonction.
Donc, ici a et b seraient les paramètres de `ma_methode` et 1,2 seraient les arguments passés lors de l'appel. Donc, ici a et b seraient les paramètres de `ma_methode` et 1,2 seraient les arguments passés lors de l'appel.
La méthode `ma_methode` renvoie ici un nombre calculé par la fonction, qui est également décrit dans la docstring. La méthode `ma_methode` renvoie ici un nombre calculé par la fonction, qui est également décrit dans la docstring.
...@@ -200,6 +208,10 @@ La méthode `ma_methode` renvoie ici un nombre calculé par la fonction, qui est ...@@ -200,6 +208,10 @@ La méthode `ma_methode` renvoie ici un nombre calculé par la fonction, qui est
:bulb: Petite astuce sous l'IDE PyCharm quand on appelle une fonction: :bulb: Petite astuce sous l'IDE PyCharm quand on appelle une fonction:
> quand le curseur est positionné entre les parenthèses, **Ctrl+P** fait apparaître la liste des paramètres attendus. > quand le curseur est positionné entre les parenthèses, **Ctrl+P** fait apparaître la liste des paramètres attendus.
:bulb: Votre IDE, convenablement configuré, peut créer automatiquement la docstring, surtout si vous utilisez les annotations.
`def ma_fonction(param1:str, param2:int, param3:float) -> float:`
Attention, les **annotations** sont des indications ; votre IDE ou votre débuggueur peuvent détecter des anomalies, mais une définition incorrecte d'annotation n'empêchera pas vos code de tourner, par contre cela peut compliquer le travail de quelqu'un qui essaierait de comprendre le code...
La manière de définir et d'ordonner les paramètres est décrite dans le point **f** ci-dessous La manière de définir et d'ordonner les paramètres est décrite dans le point **f** ci-dessous
......
Clone repository
  • AtelierB1_Graphiques_simples
  • AtelierB2_Lire_un_fichier
  • AtelierC
  • Atelier_D_carte
  • Atelier_D_carte_a_partir_de_fichiers_binaires
  • Atelier_E_longues_series
  • Atelier_G_widgets
  • Atelier_clic_afficher
  • Atelier_clics
  • Cartes focus sur le redimensionnement
  • GUI avec QT
  • La doc avec Sphinx
  • Lexique
  • Point Théorie Subplots
  • Pour les contributeurs
View All Pages

Menu

Explore Projects Groups Topics Snippets