☠️ 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 !