Maison >développement back-end >Tutoriel Python >Quelle est la différence entre les traits de soulignement simples et doubles en 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!