les chaînes de format et les arguments nommés en Python

Cas 1:

"{arg1} {arg2}".format (10, 20)

Il donnera KeyError: 'arg1' parce que je ne voulais pas passer les arguments nommés.

Cas 2:

"{arg1} {arg2}".format(arg1 = 10, arg2 = 20)

Maintenant, il va fonctionner correctement car j'ai passé les arguments nommés.
Et il imprime '10 20'

Cas 3:

Et, Si je passe faux nom, il va montrer KeyError: 'arg1'

 "{arg1} {arg2}".format(wrong = 10, arg2 = 20)

Mais,

Cas 4:

Si je passe les arguments nommés dans mauvais ordre

"{arg1} {arg2}".format(arg2 = 10, arg1 = 20)

Il fonctionne...

et il imprime '20 10'

Ma question est pourquoi il fonctionne et ce qui est de l'utilisation de arguments nommés dans ce cas.

  • Je pense qu'ils sont juste là pour des raisons de lisibilité.
  • Parce que sa recherche par nom plutôt que de la position...que pensez-vous des arguments nommés signifie?
  • Il semble que vous simplement renommé arg2 de arg1 et vice versa. en d'autres termes arg1 est maintenant de 20 au lieu de 10, c'est pourquoi vous voyez le premier nombre de votre chaîne d'impression de 20 au lieu de 10. Pour faire le test que vous avez voulu, vous avez besoin simplement de déplacer les arguments ET leurs valeurs à la nouvelle position dans le format() appeler et il se comporterait de la même façon que vous attendez. Rien n'est hors de l'ordinaire ici.
InformationsquelleAutor bkmagnetron | 2013-07-27