De ce o valoare implicită mutabilă este evaluată o singură dată în Python
Un tutorial Python care explică de ce o valoare implicită mutabilă este evaluată o singură dată. Acoperă instrucțiunea def ca instrucțiune executabilă care evaluează expresiile parametrilor la import, stocarea rezultatelor în tuplul defaults și în kwdefaults, și faptul că legarea unui parametru omis este o atribuire de nume, nu o copiere. Exemple rulabile cu ieșire reală arată două apeluri independente care partajează aceeași listă confirmată cu is, o dată înghețată la momentul importului alături de o listă și un dicționar care acumulează, remediul cu None verificat cu is și de ce not este greșit, plus aceeași capcană în dataclasses cu default_factory și ValueError la mutable default, și în atributele mutabile de clasă. Include memoizarea deliberată și santinela proprie când None este o valoare validă.
Comentarii