Maison > développement back-end > Tutoriel Python > Classes à l'ancienne et à la nouvelle classe en Python : quelle est la différence ?

Classes à l'ancienne et à la nouvelle classe en Python : quelle est la différence ?

Susan Sarandon
Libérer: 2024-12-18 22:07:10
original
176 Les gens l'ont consulté

Old-Style vs. New-Style Classes in Python: What's the Difference?

Classes nouveau style et classes anciennes en Python

Les classes à l'ancienne étaient répandues en Python jusqu'à la version 2.1, alors que les nouvelles -les classes de style ont été introduites avec Python 2.2. La principale distinction entre les deux tourne autour du concept de types par rapport aux classes.

Classes à l'ancienne :

Les classes à l'ancienne ne sont pas directement liées au concept de genres. Les instances de classes à l'ancienne sont toutes implémentées à l'aide d'un seul type intégré appelé « instance ». Cela signifie que x.__class__ et type(x) peuvent ne pas toujours renvoyer la même valeur pour une instance de classe à l'ancienne.

Classes de nouveau style :

Nouveau Les classes -style, quant à elles, unifient les concepts de classe et de type. Une classe de nouveau style définit un type défini par l'utilisateur et les instances de classes de nouveau style sont traitées comme des objets de ce type. En règle générale, type(x) et x.__class__ renvoient la même valeur pour les instances de classe de nouveau style, sauf substitution.

Principales différences et avantages des classes de nouveau style :

  • Modèle objet unifié avec un méta-modèle complet.
  • Possibilité de sous-classer la plupart des éléments intégrés types.
  • Introduction de « descripteurs » pour les propriétés calculées.
  • Comportement plus cohérent et intuitif dans les scénarios d'héritage.

Quand utiliser l'ancien style vs classes de nouveau style :

Pour des raisons de compatibilité ascendante, les classes de Python 2.x sont de style ancien par défaut. Pour créer une classe de nouveau style, spécifiez explicitement une classe de nouveau style comme classe parent.

Dans Python 3, toutes les classes sont de nouveau style. Il n'est donc pas nécessaire de faire la distinction entre les deux styles.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal