J'essaie de préparer un avenir en informatique, alors j'ai commencé avec Ecmascript et j'essaie maintenant d'en apprendre davantage sur Python. Venant de ECMAScript, voir plusieurs affectations telles que Merci d'avance p> A, B, C = 1, 2, 3 CODE> me laisse déconcerter un instant, jusqu'à ce que je réalise qu'il y a plusieurs affectations. Pour rendre les choses un peu plus claires, j'aimerais vraiment faire
(a, b, c) = (1, 2, 3) code> mais je ne suis pas sûr que ce sera une performance mesurable. D'après ce que je comprends, les tuples sont essentiellement comment les tâches multiples fonctionnent indépendamment, mais il y a beaucoup de bizarreries dans le monde, alors j'essaie de ne rien assumer. P>
4 Réponses :
Il ne faut pas avoir d'effet sur la performance. La parenthèse ne fait pas un tuple, la virgule. Donc (1,2,3) est exactement le même que 1,2,3 p>
Ah ... Je n'ai même pas pensé à ça. Merci.
Multiples affectation est mise en œuvre comme une combinaison de l'emballage de tuple et du déballage de tuple, à ma connaissance, il devrait donc avoir le même effet. P>
Cela fonctionne également pour les listes: fonctionne aussi bien p> p>
Et c'est appelé «déballage» en python
Il est extrêmement facile à vérifier, avec le voir? Ces parenthèses totalement redondantes rendent absolument dis code>
module: A + B code> et
(A + B) code> générera et exécutera exactement le même bytecode que l'autre. Donc, si vous aimez ajouter des parenthèses redondantes, assommez-vous - les personnes qui lisent votre code peuvent ne pas les aimer, mais ceux qui viennent de l'exécuter ne remarqueront jamais. Seulement, pourquoi s'arrêter à seulement deux paires de parenthèses redondantes? Voir, P>
>>> dis.dis(compile('(((a,b,c)))=(((1,2,3)))','','exec'))
1 0 LOAD_CONST 4 ((1, 2, 3))
3 UNPACK_SEQUENCE 3
6 STORE_NAME 0 (a)
9 STORE_NAME 1 (b)
12 STORE_NAME 2 (c)
15 LOAD_CONST 3 (None)
18 RETURN_VALUE
>>>
Voici un indice pour votre avenir en informatique (je suis dans l'entreprise depuis plus de 30 ans). Ne passez pas de temps sur ce type de question d'optimisation jusqu'à ce que vous puissiez prouver b> que la déclaration de mission multiple est absolument tuant votre programme. Jusqu'à ce que vous ayez Preuve B> que quelque chose est inacceptable lent, utilisez-le. Utilisez tout sans vous soucier de la performance. Les gens qui ont inventé la langue déjà inquiet à ce sujet pour vous.