Instance vs. Static vs. Méthodes de classe en Python : les différences importantes

Instance vs. Static vs. Méthodes de classe en Python : les différences importantes

Les méthodes Python peuvent souvent être déroutantes une fois que vous vous lancez dans la programmation orientée objet (POO). Ce guide couvre les trois principaux types de méthodes en Python.





Les 3 types de méthodes en Python

Il existe trois types de méthodes en Python : méthodes d'instance , méthodes statiques , et méthodes de classe .





Connaître les différences n'est pas toujours nécessaire pour coder des scripts Python de base, mais une fois que vous avancez dans la POO, les différences peuvent faire un grand changement.





Si vous êtes nouveau sur Python, ou si vous voulez simplement expérimenter sans avoir à installer quoi que ce soit, assurez-vous de visiter ces shells Python interactifs en ligne .

Avant de commencer : comprendre les modèles de décorateur

Avant d'examiner les différences, il est important de comprendre un modèle de conception connu sous le nom de modèle de décorateur , ou simplement appelé un décorateur .



Les décorateurs semblent complexes, mais il n'y a rien à craindre. Les décorateurs sont simplement des fonctions. Vous pouvez les écrire vous-même ou utiliser ceux inclus dans les bibliothèques ou la bibliothèque standard Python.

Comme toute fonction, les décorateurs accomplissent une tâche. La différence ici est que les décorateurs appliquent une logique ou modifient le comportement d'autres fonctions. Ils constituent un excellent moyen de réutiliser le code et peuvent aider à séparer la logique en préoccupations individuelles.





Le modèle de décorateur est le moyen préféré de Python pour définir des méthodes statiques ou de classe. Voici à quoi ressemble l'un en Python :

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is decorated! '''
print('I'm a decorated function!')

de = DecoratorExample()
de.example_function()

Les décorateurs doivent précéder immédiatement une déclaration de fonction ou de classe. Ils commencent par le @ signe, et contrairement aux méthodes normales, vous n'avez pas besoin de mettre de parenthèses à la fin, sauf si vous passez des arguments.





Il est possible de combiner plusieurs décorateurs, d'écrire les vôtres et de les appliquer également aux classes, mais vous n'aurez rien à faire pour ces exemples.

comment utiliser l'application après l'école sans facebook

Méthodes d'instance en Python

Les méthodes d'instance sont le type de méthodes le plus courant dans les classes Python. Ceux-ci sont appelés ainsi car ils peuvent accéder aux données uniques de leur instance. Si vous avez deux objets créés chacun à partir d'une classe de voiture, ils peuvent avoir chacun des propriétés différentes. Ils peuvent avoir différentes couleurs, tailles de moteur, sièges, etc.

Les méthodes d'instance doivent avoir soi comme paramètre, mais vous n'avez pas besoin de le transmettre à chaque fois. Self est un autre terme spécial Python. Dans n'importe quelle méthode d'instance, vous pouvez utiliser self pour accéder à toutes les données ou méthodes pouvant résider dans votre classe. Vous ne pourrez pas y accéder sans passer par vous-même.

Enfin, comme les méthodes d'instance sont les plus courantes, aucun décorateur n'est nécessaire. Toute méthode que vous créez sera automatiquement créée en tant que méthode d'instance, sauf indication contraire de Python.

Voici un exemple :

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
self.name = 'Decorator_Example'
def example_function(self):
''' This method is an instance method! '''
print('I'm an instance method!')
print('My name is ' + self.name)

de = DecoratorExample()
de.example_function()

Les Nom variable est accessible via soi . Remarquez que lorsque exemple_fonction est appelé, vous n'avez pas à vous transmettre --- Python le fait pour vous.

Méthodes statiques en Python

Les méthodes statiques sont des méthodes qui sont liées à une classe d'une manière ou d'une autre, mais n'ont pas besoin d'accéder à des données spécifiques à la classe. Vous n'êtes pas obligé d'utiliser soi , et vous n'avez même pas besoin d'instancier une instance, vous pouvez simplement appeler votre méthode :

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is a static method! '''
print('I'm a static method!')

de = DecoratorExample.example_function()

Les @méthodestatique decorator a été utilisé pour dire à Python que cette méthode est une méthode statique.

Les méthodes statiques sont idéales pour les fonctions utilitaires, qui effectuent une tâche de manière isolée. Ils n'ont pas besoin (et ne peuvent pas) accéder aux données de classe. Ils doivent être complètement autonomes et ne fonctionner qu'avec des données transmises en tant qu'arguments. Vous pouvez utiliser une méthode statique pour additionner deux nombres ou imprimer une chaîne donnée.

Méthodes de classe en Python

Les méthodes de classe sont le troisième et dernier type de méthode POO à connaître. Les méthodes de classe connaissent leur classe. Ils ne peuvent pas accéder à des données d'instance spécifiques, mais ils peuvent appeler d'autres méthodes statiques.

Les méthodes de classe n'ont pas besoin soi comme argument, mais ils ont besoin d'un paramètre appelé cls . Cela représente classer , et comme self, est automatiquement transmis par Python.

Les méthodes de classe sont créées à l'aide du @classmethod décorateur.

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@classmethod
def example_function(cls):
''' This method is a class method! '''
print('I'm a class method!')
cls.some_other_function()
@staticmethod
def some_other_function():
print('Hello!')

de = DecoratorExample()
de.example_function()

Les méthodes de classe sont peut-être les types de méthodes les plus déroutants des trois, mais elles ont leur utilité. Les méthodes de classe peuvent manipuler la classe elle-même, ce qui est utile lorsque vous travaillez sur des projets plus importants et plus complexes.

Quand utiliser chaque type de méthode

Choisir entre les types de méthodes en Python peut sembler une décision difficile et intimidante, mais vous vous y habituerez bientôt avec un peu de pratique.

comment activer le flash dans chrome

Même si vous n'écrivez que de petits scripts pour le plaisir, apprendre une autre fonctionnalité de POO de Python est une excellente compétence à connaître et peut aider à rendre votre code plus facile à dépanner et plus facile à réutiliser à l'avenir.

En résumé:

  1. Méthodes d'instance : Le type de méthode le plus courant. Capable d'accéder aux données et propriétés uniques à chaque instance.
  2. Méthodes statiques : Impossible d'accéder à autre chose dans la classe. Code totalement autonome.
  3. Méthodes de classe : Peut accéder à des méthodes limitées dans la classe. Peut modifier les détails spécifiques à la classe.

Si ce tutoriel était un peu avancé, ou pas tout à fait ce que vous recherchiez, alors pourquoi ne pas jeter un œil à ces cours pour passer de Python débutant à pro ? Ces 5 sites Web sont également parfaits pour les débutants en Python. Si vous voulez une utilisation physique et réelle de Python, mais que vous vous ennuyez du Raspberry Pi, que diriez-vous de notre guide pour contrôler Arduino avec Python ?

Partager Partager Tweeter E-mail Comment nettoyer votre PC Windows à l'aide de l'invite de commande

Si votre PC Windows manque d'espace de stockage, nettoyez les fichiers indésirables à l'aide de ces utilitaires d'invite de commande rapides.

Lire la suite
Rubriques connexes
  • La programmation
  • La programmation
  • Python
A propos de l'auteur Joe Coburn(136 articles publiés)

Joe est diplômé en informatique de l'Université de Lincoln, au Royaume-Uni. C'est un développeur de logiciels professionnel, et lorsqu'il ne pilote pas de drones ou n'écrit pas de musique, on le trouve souvent en train de prendre des photos ou de produire des vidéos.

Plus de Joe Coburn

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner