Démasquer le trait de soulignement : comprendre le trait de soulignement simple et double en Python
En Python, la présence d'un ou deux traits de soulignement avant un identifiant peut modifier sa signification et sa visibilité au sein d'une classe ou d'un module.
Soulignage unique : usage interne Indicateur
Un trait de soulignement signifie qu'un attribut ou une méthode est destiné à un usage interne au sein de la classe actuelle. Cependant, il ne s’agit là que d’une convention ; la confidentialité n’est pas respectée. De plus, des traits de soulignement uniques dans les fonctions du module indiquent qu'ils ne doivent pas être importés par des modules externes.
Double trait de soulignement : modification du nom
Deux traits de soulignement signifient une modification du nom. Ces identifiants sont transformés en interne avec un ClassName ajouté, où ClassName est le nom de la classe actuelle sans les traits de soulignement de début supprimés. Ce mécanisme permet la définition d'instances privées de classe et de variables de classe et offre une certaine protection contre les accès externes. Cependant, il est important de noter que la modification des noms ne garantit pas une confidentialité absolue, car des individus déterminés peuvent toujours accéder à des variables privées.
Exemple :
Considérons la classe suivante :
class MyClass(): def __init__(self): self.__superprivate = "Hello" self._semiprivate = ", world!"
Comme démontré dans l'exemple de sortie, l'accès à __superprivate entraîne directement une AttributeError, tandis que _semiprivate est accessible.
L'attribut __dict__ révèle l'existence à la fois de __superprivate et _semiprivate comme mutilé, confirmant le nom de mécanisme de mutilation.
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!