Je suis en train de parcourir un vieux code pour essayer de comprendre ce qu'il fait, et je suis tombé sur cette étrange déclaration :
*x ,= p
p
est une liste dans ce contexte. J'ai essayé de comprendre ce que fait cette instruction. D'après ce que je sais, elle place simplement x
à la valeur de p
. Par exemple :
p = [1,2]
*x ,= p
print(x)
Donne juste
[1, 2]
Alors est-ce que c'est différent de x = p
? Une idée de ce que fait cette syntaxe ?
2 votes
C'est différent car au lieu d'attribuer un alias, il copie la liste.
0 votes
Voir python.org/dev/peps/pep-3132
4 votes
L'omission de la virgule donne un message d'erreur auquel ceci pourrait être une référence intéressante : "SyntaxError : starred assignment target must be in a list or tuple".