200 votes

'id' est un mauvais nom de variable en Python

Pourquoi est-il mauvais de nommer une variable 'id' en Python?

186voto

Kevin Little Points 5406

id() est un élément fondamental intégré:

Aide sur la fonction intégrée id dans le module __builtin__ :

 id(...)

    id(object) -> integer

    Return the identity of an object.  This is guaranteed to be unique among
    simultaneously existing objects.  (Hint: it's the object's memory
    address.)
 

En général, utiliser des noms de variable qui éclipsent un mot-clé ou une fonction intégrée dans n’importe quelle langue est une mauvaise idée, même si cela est autorisé.

61voto

Nathan Sanders Points 10641

id est une fonction intégrée qui donne l'adresse mémoire d'un objet. Si vous avez le nom de l'un de vos fonctions id, vous devrez dire __builtins__.id pour obtenir l'original. Renommer id à l'échelle mondiale est une source de confusion dans quelque chose, mais un petit script.

Cependant, la réutilisation de construit-dans les noms de variables n'est pas si mauvais que ça aussi longtemps que l'usage local. Python a beaucoup de fonctions intégrées qui (1) ont des noms communs et (2) vous n'utiliserez pas beaucoup de toute façon. L'utilisation de ces variables locales ou en tant que membres d'un objet est OK parce que c'est évident à partir du contexte de ce que vous faites:

Exemple:

def numbered(filename):
  file = open(filename)
  for i,input in enumerate(file):
    print "%s:\t%s" % (i,input)
  file.close()

Certains built-ins avec des tentant noms:

  • id
  • file
  • list
  • map
  • all, any
  • complex
  • dir
  • input
  • slice
  • buffer

59voto

Sebastian Rittau Points 4041

Je pourrais dire quelque chose d’impopulaire ici: id() est une fonction intégrée plutôt spécialisée qui est rarement utilisée dans la logique métier. Par conséquent, je ne vois pas d'inconvénient à l'utiliser en tant que nom de variable dans une fonction serrée et bien écrite, où il est clair que id ne signifie pas la fonction intégrée.

5voto

Toni Ruža Points 5538

Il est mauvais de nommer une variable après une fonction intégrée. Une des raisons est parce que cela peut être déroutant pour un lecteur qui ne sait pas que le nom est remplacé.

-2voto

ahockley Points 3310

Parce que c'est le nom d'une fonction intégrée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X