
Because Python functions’ defaults are kept in __defaults__, avoid mutable defaults:
def add1(x=[]):
x.append(1) # same as: add1.__defaults__[0].append(1) ‼️
return x
add1() # [1]
add1() # [1, 1]
add1() # [1, 1, 1] 🤯
add1.__defaults__ # ([1, 1, 1],)
