En Python, quel est le trait de soulignement devant la variable d'instance?
Ce que la convention est-il?
class IndexedText(object):
def __init__(self, stemmer, text):
self._text = text
self._stemmer = stemmer
self._index = nltk.Index((self._stem(word), i) for (i, word) in enumerate(text))
source d'informationauteur TIMEX
Vous devez vous connecter pour publier un commentaire.
La
_
signaux que ceux-ci sont privés des membres. Ce n'est pas appliquée par la langue en quelque sorte, depuis Python pour les programmeurs sont tous des "adultes consentants".Selon PEP 8:
Il ne fait pas référence à l'utilisation d'un seul trait de soulignement à un membre d'une classe, mais ils ont tendance à être utilisé pour indiquer "usage interne". Pour une version plus forte de la même chose, l'utilisation deux principaux traits de soulignement (par exemple
self.__foo
) -- Python fera une plus forte tenter d'empêcher les sous-classes d'écraser accidentellement le membre, mais déterminé code peut toujours le faire.Il implique un usage interne uniquement (similaire à privé dans d'autres langues), mais n'est pas limité à l'instar d'autres langues.
C'est une convention, qui dispose que les clients de la classe/l'objet doit éviter d'utiliser ces attributs si possible, car ils sont pour un usage interne.
Cela signifie juste le ces attributs sont à usage interne uniquement et si possible de ne pas les toucher.
Supposons que Vous modifiez le code existant et que vous voyez des variables avec un trait de soulignement en face d'eux. cela signifie que vous ne devez pas modifier. Juste un avertissement.
donc
self.name = a
self._name =a
self.__name=a
sont tous les mêmes