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
"src/git@gitlab-ssh.irstea.fr:theophile.terraz/pamhyr.git" did not exist on "d6561ab44d0cbbe0d701d978424ad79559fa44f6"

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 57 additions and 1 deletion
+57 -1
Python_-quelques-bases.md
View page @ 1979541a
...@@ -144,7 +144,63 @@ Le numéro 50 s'écrit : cinquante ...@@ -144,7 +144,63 @@ Le numéro 50 s'écrit : cinquante
La fonction est un objet comme les autres (ou presque) ! La fonction est un objet comme les autres (ou presque) !
Les fonctions et méthodes (fonctions définies dans une classe) peuvent être appelées pour exécuter des instructions et retourner un ou plusieurs objets. Techniquement, ce sont donc des « callables » (http://sametmax.com/quest-ce-quun-callable-en-python/ ). Les fonctions et méthodes (fonctions définies dans une classe) peuvent être appelées pour exécuter des instructions et retourner un ou plusieurs objets. Techniquement, ce sont donc des « callables » (http://sametmax.com/quest-ce-quun-callable-en-python/ ).
#### A.3.1. Rappel des bases pour éviter des erreurs courantes : #### A.3.1. Rappels, fonction et **paramètres** de la fonction
Une fonction (ou une méthode) est définie par le mot-clé **def**, un nom de fonction suivi d'une liste de noms de variables entre parenthèses, puis un bloc de code introduit par les "**:**", qui commence de préférence par une docstring.
``` python
def ma_fonction(param1, param2, param3):
""" doctring pour décrire ce que fait ma_fonction """
```
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 le 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
class MonObjet:
def __init__ (param1, param2, param3):
self.param1 = param1
self.somme = param2 + param3
def ma_methode(self, a, b):ab:
"""J'ajoute a et b à self.somme.
:param a : un truc à ajouter
:type a : entier
:param b : un autre truc à ajouter
:type a : flottant ou entier
:return: somme a + b
:rtype: flottant
"""
aplusb = a + b
self.somme += aplusb
return aplusb
```
On peut remplacer **self** par **this**, comme en java ; ce n'est pas du tout recommandé, mais on insiste sur l'importance de ne pas l'oublier !
``` python
def ma_methode(this, a, b):
""" petite description de ma fonction : elle calcule a + b, et l'ajoute à l'attribut somme ; elle retourne aussi a+b """
aplusb = a + b
this.somme += aplusb
return aplusb
```
machin = MonObjet(4,5,6)
bidule = machin.ma_methode(1,2)
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 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.
La méthode `ma_methode` renvoie ici un nombre calculé par la fonction, qui est également décrit dans la docstring.
La manière de définir et d'ordonner les paramètres est décrite dans le point **f** ci-dessous
#### A.3.2. Rappel des bases pour éviter des erreurs courantes :
Gardez en tête que la fonction est un objet ! Cela aide à bien comprendre les points importants suivants, qui seront détaillés ensuite. Gardez en tête que la fonction est un objet ! Cela aide à bien comprendre les points importants suivants, qui seront détaillés ensuite.
a) Attention à mettre les parenthèses quand on appelle la fonction et seulement là ! a) Attention à mettre les parenthèses quand on appelle la fonction et seulement là !
......
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