Maison >développement back-end >Tutoriel Python >Quelle est la différence entre les traits de soulignement simples et doubles dans les noms d'objet Python ?

Quelle est la différence entre les traits de soulignement simples et doubles dans les noms d'objet Python ?

DDD
DDDoriginal
2024-12-24 08:32:14606parcourir

What's the Difference Between Single and Double Underscores in Python Object Names?

Démystifier les traits de soulignement dans les noms d'objets Python

En Python, les conventions de dénomination jouent un rôle crucial dans la dénomination des objets. Les traits de soulignement simples et doubles placés devant le nom d'un objet ont des significations spécifiques qui guident les programmeurs dans la compréhension de la portée et de l'accessibilité de cet objet.

Single Underscore (_name)

Un seul trait de soulignement dans le nom d'un objet suggère qu'il est destiné à un usage interne au sein de la classe. C'est une manière d'indiquer que l'objet n'est pas destiné à être consulté ou modifié depuis l'extérieur de la classe. Cependant, il est important de noter que cette convention est une ligne directrice plutôt qu'une restriction imposée.

Des traits de soulignement simples sont également utilisés pour désigner des modules ou des fonctions qui ne doivent pas être importés d'ailleurs. En préfixant le nom de l'objet avec un trait de soulignement, cela signifie aux autres programmeurs qu'il doit être traité comme un élément privé.

Double trait de soulignement (__name__)

Les traits de soulignement doubles sont utilisés pour la modification du nom, une technique qui modifie le nom de l'objet en arrière-plan. Cette transformation remplace le nom de l'objet par une version modifiée qui inclut le nom de la classe et les traits de soulignement.

Selon la documentation de Python, les doubles traits de soulignement indiquent qu'un objet doit être traité comme une variable ou une méthode privée au sein de la classe actuelle. Cependant, il est essentiel de comprendre que la mutilation des noms n’est pas absolue. Les individus déterminés peuvent toujours accéder ou modifier les variables marquées comme privées.

Example

Considérons la classe Python suivante :

class MyClass():
    def __init__(self):
        self.__superprivate = "Hello"
        self._semiprivate = ", world!"

mc = MyClass()
print(mc._semiprivate)  # Accessible
print(mc.__superprivate)  # Not accessible outside the class

Dans Dans cet exemple, la variable __superprivate est marquée comme privée à l'aide de doubles traits de soulignement, tandis que la variable _semiprivate utilise un seul trait de soulignement. souligner. La variable __superprivate est inaccessible en dehors de la classe, tandis que la variable _semiprivate est accessible mais doit être considérée comme interne à la classe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn