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

Quelle est la différence entre les traits de soulignement simples et doubles en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-22 12:07:411021parcourir

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

Exploration des traits de soulignement simples et doubles de Python

L'utilisation par Python des traits de soulignement avant les noms d'objets transmet des significations et des comportements spécifiques.

Souligné unique : « Utilisation interne » Indicateur

Un seul trait de soulignement indique qu'un attribut ou une méthode est destiné à être utilisé au sein de sa propre classe. Il s'agit d'une convention, et non d'une règle imposée, visant à décourager l'accès externe. De plus, lorsqu'un seul trait de soulignement précède les noms de fonctions dans un module, cela implique qu'ils ne doivent pas être importés de l'extérieur du module.

Doubles traits de soulignement : modification des noms

Doubles traits de soulignement déclencher la modification du nom, un processus dans lequel l'identifiant devient préfixé par le nom de la classe et les traits de soulignement sont supprimés. Ceci est fait pour les membres de la classe « privée » afin d'éviter les conflits avec les membres des classes dérivées ou du code externe. Cependant, il est important de noter que des utilisateurs déterminés peuvent toujours accéder à ces variables.

Exemple :

Dans l'exemple suivant, __superprivate est destiné à être inaccessible en dehors de la classe, tandis que _semiprivate suit la convention d'usage interne :

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

Lors de l'accès à ces membres en dehors de la classe, seul _semiprivate le fera être exposé :

mc = MyClass()
print(mc._semiprivate)  # "Hello"
print(mc.superprivate)  # Attribute error

Par conséquent, les traits de soulignement simples indiquent une utilisation interne prévue, tandis que les traits de soulignement doubles protègent les membres de l'accès direct par modification de nom, fournissant une couche de confidentialité mais pas une sécurité absolue.

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