En Python 2.x, en utilisant les backticks pour obtenir chaîne décimale de l'objet int est horrible?

StackOverflow https://stackoverflow.com/questions/2848090

  •  27-09-2019
  •  | 
  •  

Question

En Python 2.x, en utilisant les backticks pour obtenir chaîne décimale de l'objet int est Horrible ? Parce que sont repr() contre-apostrophes, pas str()? J'ai remarqué que quand je répondre à cette question .

Dans la source Python, ils ont la même fonction dans la source Python, intobject .c

(reprfunc)int_to_decimal_string,            /* tp_repr */
....
(reprfunc)int_to_decimal_string,            /* tp_str */

Que pensez-vous?

Était-ce utile?

La solution

Eh bien, je ne dirais pas que c'est « horrible », mais je pense qu'il est pas bon pour au moins quatre raisons:

  1. str(my_number) indique plus clairement votre intention que ses environs my_number par des accents graves. (Voir "compte" dans Lisibilité le Zen de Python ).

  2. La mise en œuvre de Python en C est juste une mise en œuvre possible; il y a Jython, IronPython, PyPy et ainsi de suite, et à moins d'une déclaration explicite quelque part dans le spécification Python qui repr() et str() est le même pour des objets entiers, je ne serais pas compter sur ce comportement.

  3. Les contre-apostrophes sont partis en Python 3.x.

  4. Si votre numéro se trouve être si grand qu'il ne peut pas être représenté par un int, Python favorise automatiquement un entier long, et pour cela, diffère de repr() et str().

Voir cet exemple:

>>> x = 1234567890
>>> y = x ** 3
>>> `y`
'1881676371789154860897069000L'
>>> str(y)
'1881676371789154860897069000'

Autres conseils

Oui. L'utilisation des backticks pour tout est horrible.

Vous avez str(i), vous avez '%d' % i, vous avez .format(i); si vous voulez que le repr puis le dire directement avec repr() ou %r ou autre.

Il n'y a jamais une bonne raison d'utiliser des accents graves, ils ont juste fait un code moins lisible et beaucoup plus difficile à analyser. Ils sont partis en Python 3.

2.X: Utilisation des backticks pour quoi que ce soit est horrible. Utilisez rééd () ou str () selon les besoins.

3.X: Les contre-apostrophes ont disparu! Bravo !!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top