Mis a jour le 2017-09-24, 21:34

Fonctions

Définition d'une fonction :
def myFunc(n):
	print n
	return 1
  
Documentation d'une fonction : mettre la chaîne de documentation en première ligne du corps :
Les paramètres sont passés par valeur (mais c'est la référence qui est passée par valeur quand c'est une variable de type liste ou dictionnaire ou tuple).
Par défaut, les variables d'une fonction sont locales :
Valeur de retour d'une fonction :
On peut definir une fonction avec des valeurs par défaut :
Attention aux valeurs par défaut mutables !
On peut appeler une fonction avec des arguments précisés par nom :
def myFunc(a, b = 4):
...
myFunc(a = 1, b = 5)
myFunc(a = 2)
  
Les arguments par défaut sont évalués dans le scope de la définition :
a = 3
def myFunc(x = a):
    print x
a = 4
myFunc()
  
va imprimer 3 et non 4 !
Avec la formulation **, l'argument recoit le dictionnaire de tous les arguments précisés par nom :
def myFunc(**args):
	for kw in args.keys():
		print kw, ':', args[kw]
  
Avec la formulation *, l'argument reçoit le tuple de tous les arguments :
def myFunc(*args):
	for kw in args:
		print kw
  
On peut mélanger tout cela :
def myFunc(a, *b, **c):
    print a
    print b
    print c

myFunc(4, 5, 7, x = 4, y = 8)
  
imprime :
4
(5, 7)
{'titi': 8, 'toto': 4}
  
Unpacking :
lambda function (fonction anonyme) : lambda x, y: x * y
Variable statique dans une fonction :
Une fonction peut être stockée dans une variable avant d'être utilisée :
def myFunc(x):
    return x + 1

f = myFunc
print f(3) # donne 4
  
On peut définir une fonction à l'intérieur d'une fonction, pour que la fonction englobante retourne une fonction :
def buildMyFunc(a):
    def myFunc(x):
        return a * x
    return myFunc

f = buildMyFunc(2)
f(3) # renvoie 6
  
Appel d'une méthode par son nom sur un objet :
abs(-2) : valeur absolue du nombre.
Il n'y a pas de fonction standard sign en python pour avoir le signe d'un nombre !

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert