TUTORIEL OUTILS 
Fonctions et méthodes en Python
En Python, la construction d'une fonction ou d'une classe est assez simple. Voyons comment il faut procéder. (23/09/2005)

De la syntaxe Python se dégage un certain sentiment de facilité : tout y a été pensé pour être réalisable rapidement, et surtout, l'un des mots d'ordre du langage est "une seule manière d'accomplir une action" - à la différence de Perl et son "More than one way to do it".

Les fonctions et classes Python n'échappent pas à la règle : en dehors des espaces blancs qui déterminent le bloc de fonction (et aussi les blocs if ou while [lire l'article du 11/12/2001]) et des deux-points, la construction d'une fonction ou d'une classe est assez simple. Il suffit de poser le mot-clef def, suivi du nom de la fonction, et le bloc est exploitable.

Fonctions
Voici donc une fonction dans sa forme la plus basique :
def nomDeLaFonction():
  print 'Nous sommes dans le bloc fonction'
  print 'Nous y sommes encore'
print 'Nous n'y sommes plus'


Bien entendu, on peut inclure toutes sortes de boucles :

def nomDeLaFonction():
  x = 0
  while x < 10
    print 'Nous sommes dans le bloc fonction'
    x = x + 1
print 'Nous n'y sommes plus'


Les arguments simples sont très classiques :

def nomDeLaFonction(x, y):
  while x < y
    print 'Nous sommes dans le bloc fonction'
    x = x + 1
nomDeLaFonction(5, 10)
print 'Nous n'y sommes plus'


Le renvoi se fait à l'aide du mot-clef return :

def colorier(animal):
  return animal " blanc!"
print colorier("lapin")


Les paramètres peuvent également avoir une valeur par défaut. Pour remplacer cette valeur par défaut, il faudra mettre les valeurs dans l'ordre. C'est pourquoi il est préférable de mettre les valeurs par défaut à la fin des paramètres.

def nawak(couleur='rouge', jour='mardi', animal='lapin', fruit='pomme')
  print "le " jour ", tous les " animal "s sont" couleur
  print
"s car ils mangent des " fruit "s."

nawak('vert')
nawak('jaune', 'lundi', 'crocodile')
nawak('orange', 'mercredi', 'brontosaure', 'lapin')


On peut même directement utiliser les étiquettes, pour ne pas avoir à lister tous les autres paramètres :

nawak(animal='homme')

  Forum

Réagissez dans les forums de JDN Développeurs

Une fois un nombre conséquent de fonctions créé, il sera plus efficace de les regrouper dans un module que l'on appellera comme tout module Python classique.

Tout d'abord, créer un fichier pour le module, comme monModule.py, puis y glisser ses fonctions, enfin appeller le module au début du fichier exploitant ces fonctions, via la syntaxe :

from monModule import *

Ou, si l'on veut être très précis

from monModule import nomDeLaFonction, nawak


Méthodes
Les classes répondent aux même complications que les fonctions : à savoir très peu ! Le mot-clef class suffit à les définir, tandis que les méthodes de la classes se construisent de la même manière que des fonctions indépendantes :

class Personne:
  def __init__(self, age, sexe='homme', coulYeux='marron'):
    self.age = age
    self.sexe = sexe
    self.coulYeux = coulYeux

  def getAge(self):
    return self.age

Helene = Personne(36, 'femme')
print Helene.getAge()


A noter, la fonction particulière __init__, qui correspond au constructeur de la classe.
 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages