Aller au contenu

☠️ Mauvaises pratiques

Utiliser un paramètre par défaut mutable

🐍 Script Python
# Exemple de fonction imaginée par Serge BAYS

def f(lst=[]):
    lst.append(1)
    if len(lst) < 2:
        f()
    return lst
🐍 Console Python
>>> f()
[1, 1]
>>> f()
[1, 1, 1]
>>> f()
[1, 1, 1, 1]
>>> f([])
[1]
>>> f()
[1, 1, 1, 1, 1, 1]

De manière générale, on n'utilise pas de paramètre par défaut mutable dans une fonction...

Quand elle est récursive, c'est encore plus diabolique !