Mis a jour le 2024-03-17, 13:2

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, qui garde la mémoire entre 2 appels :
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
  
Si myFunc est une fonction définie :
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
  
Test si un attribut est une fonction (ou méthode) : callable(myMeth) : renvoie True si myMeth est une fonction ou méthode, False sinon.
Appel des attributs par nom :
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