Méthodes en Python: un concept clé de la programmation orientée objet

Contenu

Vue d'ensemble

  • Les méthodes en Python sont un concept crucial à comprendre en tant que programmeur et professionnel de la science des données..
  • Ici, Nous parlerons de ces différents types de méthodes en Python et comment implémenter le

introduction

Python est un langage merveilleux, mais cela peut être écrasant pour un débutant à maîtriser. Comme toute langue parlée, Python exige que nous comprenions d'abord les bases avant de pouvoir nous lancer dans la création d'applications plus diverses et plus larges dans le domaine de la science des données..

Voici la question: si vous couvrez bien vos bases, vous trouverez python très simple. Mais il est crucial de passer le temps d'apprentissage initial pour se familiariser avec les fonctions offertes par Python.. Ce sera vraiment payant sur le long terme !!

types-de-méthodes-en-python-9192148

Python il, bien sûr, un langage de programmation orienté objet (POO). C'est un concept large et il n'est pas possible de tout comprendre à la fois.. En réalité, maîtriser la programmation orientée objet peut prendre plusieurs mois voire plusieurs années. Cela dépend totalement de votre capacité à comprendre. Je recommande fortement de lire d'abord mon article précédent sur les "Bases de la programmation orientée objet"..

Ensuite, dans cet article particulier, Je développerai davantage le concept de méthodes en programmation orientée objet. Nous parlerons des différents types de méthodes en Python. Étant donné que les méthodes Python peuvent parfois être déroutantes si vous débutez en POO, Je couvrirai les méthodes en Python et leurs types en détail dans cet article. Et puis nous verrons les cas d'utilisation de ces méthodes.

Mais attendez, Quelles sont les méthodes python? Bon, Commençons et découvrons!

Si vous êtes complètement nouveau sur Python, tu devrais vérifier ça cours python gratuit qui vous apprendra tout ce dont vous avez besoin pour vous lancer dans le monde de la science des données.

Table des matières

  • Quelles sont les méthodes en Python?
  • Types de méthodes en Python
    • Méthodes d'instance
    • Méthodes de classe
    • Méthodes statiques
  • Quand utiliser Quel type de méthode Python?

Quelles sont les méthodes en Python?

La grande question!

Dans la programmation orientée objet, nous avons des objets (roulement de tambour, S'il vous plait). Ces objets sont constitués de propriétés et de comportements. En outre, les propriétés de l'objet sont définies par des attributs et le comportement est défini par méthodes. Ces méthodes sont définies au sein d'une classe. Ces méthodes sont l'extrait de code réutilisable qui peut être invoqué / appeler à n'importe quel moment du programme.

Python propose plusieurs types de ces méthodes. Ceux-ci sont essentiels pour devenir un programmeur efficace et, en conséquence, sont utiles pour un professionnel de la science des données.

Types de méthodes en Python

Essentiellement, Il existe trois types de méthodes en Python:

  • Méthode d'instance
  • Méthode de classe
  • Méthode statique

Parlons de chaque méthode en détail.

Méthodes d'instance

Le but des méthodes d'instance est de définir ou d'explorer les instances (objets), et c'est pourquoi elles sont appelées méthodes d'instance. Ils sont le type de méthode le plus couramment utilisé dans une classe Python.

Ils ont un paramètre par défaut: soi-même, qui pointe vers une instance de la classe. Tu n'es pas obligé de passer par ça tout le temps cependant. Vous pouvez changer le nom de ce paramètre, mais tu ferais mieux de t'en tenir à la convention, c'est-à-dire soi-même.

Toute méthode que vous créez dans une classe est une méthode d'instance, sauf si vous spécifiez spécifiquement Python autrement. Voyons comment créer une méthode d'instance:

classe Ma_classe:
  def instance_method(soi):
    revenir "Il s'agit d'une méthode d'instance."

C'est aussi simple que ça!

Pour appeler une méthode d'instance, doit créer un objet / instance de classe. A l'aide de cet objet, peut accéder à n'importe quelle méthode de la classe.

obj = Ma_classe()
obj.instance_method()

capture d

Lorsque la méthode d'instance est appelée, Python remplace le soi-même argument avec l'objet instance, obj. C'est pourquoi nous devons ajouter un paramètre par défaut lors de la définition des méthodes d'instance. Remarquez que lorsque instance_method () il s'appelle, ne doit pas arriver à lui-même. Python le fait pour vous.

Avec le paramètre par défaut self, vous pouvez également ajouter d'autres paramètres de votre choix:

classe Ma_classe:

  def instance_method(soi, une):
    retour f"Il s'agit d'une méthode d'instance avec un paramètre a = {une}."

Nous avons un paramètre supplémentaire “une” ici. Créons maintenant l'objet de classe et appelons cette méthode d'instance:

obj = Ma_classe()
obj.instance_method(10)

capture d

Encore, vous pouvez voir que nous ne nous sommes pas dépassés’ comme argument, Python le fait pour nous. Mais il y a d'autres arguments à mentionner, dans ce cas, c'est un seul. Nous avons donc passé 10 comme valeur de “une”.

Vous pouvez utiliser “soi” à l'intérieur d'une méthode d'instance pour accéder aux autres attributs et méthodes de la même classe:

classe Ma_classe:

  def __init__(soi, une, b):
    soi.a = un
    soi.b = b

  def instance_method(soi):
    retour f"C'est la méthode d'instance et elle peut accéder aux variables a = {soi.a} et
 b = {soi.b} avec l'aide de soi."

Noter que la méthode __init __ () est un type particulier de méthode connue sous le nom de constructeur. Cette méthode est appelée lorsqu'un objet est créé à partir de la classe et permet à la classe d'initialiser les attributs d'une classe.

obj = Ma_classe(2,4)
obj.instance_method()

capture d

Essayons ce code dans la fenêtre d'encodage en direct ci-dessous.

A l'aide du mot-clé "self" self.a et self.b, nous avons accédé aux variables présentes dans la méthode __init __ () de la même classe.

Avec les objets d'une classe, une méthode d'instance peut accéder à la classe elle-même à l'aide de Je .__ classe__ attribut. Voyons comment:

classe Ma_classe():

  def instance_method(soi):
    imprimer("Bonjour! à partir de %s" % self.__class__.__name__)

obj = Ma_classe()
obj.instance_method()

capture d

L'attribut self .__ class __.__ name__ renvoie le nom de la classe à laquelle l'instance de classe est liée (soi).

2. Méthodes de classe

Le but des méthodes de classe est de définir ou d'obtenir les détails (état) de la classe. C'est pourquoi elles sont appelées méthodes de classe. Ils ne peuvent pas accéder ou modifier des données d'instance spécifiques. Ils sont liés à la classe plutôt qu'à ses objets. Deux choses importantes sur les méthodes de classe:

  • Pour définir une méthode de classe, Vous devez spécifier qu'il s'agit d'une méthode de classe à l'aide du décorateur @classmethod
  • Les méthodes de classe prennent également un paramètre par défaut: cls, qui pointe vers la classe. Encore, ce n'est pas nécessaire pour nommer le paramètre par défaut “cls”. Mais c'est toujours mieux d'aller avec les conventions

Voyons maintenant comment créer des méthodes de classe:

classe Ma_classe:

  @classmethod
  def class_method(cls):
    revenir "C'est une méthode de classe."

Aussi simple que cela!

Comme je l'ai dit plus tôt, à l'aide de l'instance de classe, peut accéder à n'importe quelle méthode. Nous allons donc instancier également cette My_class et essayer d'appeler cette class_method ():

obj = Ma_classe()
obj.class_method()

capture d

Cela fonctionne aussi !! On peut accéder aux méthodes de la classe à l'aide d'une instance / objet de classe. Mais on peut accéder directement aux méthodes de la classe sans créer d'instance ou d'objet de la classe. Voyons comment:

capture d

Sans instancier la classe, vous pouvez appeler la méthode de classe avec – Cnom_classe.nom_méthode ().

Mais ce n'est pas possible avec les méthodes d'instance où nous devons instancier la classe pour appeler les méthodes d'instance. Voyons ce qui se passe lorsque nous essayons d'appeler directement la méthode d'instance:

Ma_classe.instance_method()

capture d

Nous avons une erreur indiquant qu'un argument positionnel est manquant: “je”. Et c'est évident car les méthodes d'instance acceptent une instance de la classe comme paramètre par défaut. Et il ne fournit aucune instance comme argument. Bien que cela puisse ignorer le nom de l'objet comme argument:

Ma_classe.instance_method(obj)

capture d

Impressionnant!

3. Méthodes statiques

Les méthodes statiques ne peuvent pas accéder aux données de classe. En d'autres termes, ils n'ont pas besoin d'accéder aux données de la classe. Ils sont autonomes et peuvent travailler seuls. Puisqu'ils ne sont attachés à aucun attribut de classe, ne peut pas obtenir ou définir l'état de l'instance ou l'état de la classe.

Pour définir une méthode statique, nous pouvons utiliser le décorateur @staticmethod (de même, nous utilisons le décorateur @classmethod). Contrairement aux méthodes d'instance et de classe, nous n'avons pas besoin de passer de paramètres spéciaux ou par défaut. Voyons la mise en oeuvre:

classe Ma_classe:

  @méthodestatique
  def static_method():
    revenir "Il s'agit d'une méthode statique."

Et.. Voila!

Notez que nous n'avons pas de paramètres par défaut dans ce cas. Maintenant bien, Comment appelle-t-on les méthodes statiques? Encore, on peut les appeler en utilisant l'objet / instance de classe comme:

obj = Ma_classe()
obj.static_method()

capture d

Et nous pouvons appeler des méthodes statiques directement, sans créer d'objet / instance de classe:

capture d

Vous remarquerez peut-être que la sortie est la même en utilisant les deux manières d'appeler des méthodes statiques.

Voici un résumé de l'explication que nous avons vue:

    • Une méthode d'instance connaît son instance (et de là, sa classe)
    • Une méthode de classe connaît sa classe
    • Une méthode statique ne connaît pas sa classe ou son instance

Quand utiliser quelle méthode Python?

Les méthodes d'instance sont les méthodes les plus utilisées. Même à ce moment là, il est difficile de dire quand vous pouvez utiliser des méthodes de classe ou des méthodes statiques. L'explication suivante satisfera votre curiosité:

Méthode de classe – L'utilisation la plus courante des méthodes de classe est de créer méthodes d'usine. Les méthodes d'usine sont les méthodes qui renvoient un objet de classe (comme un constructeur) pour différents cas d'utilisation. Comprenons cela en utilisant l'exemple donné:

à partir de datetime date d'importation

classe Chien:
  def __init__(soi, Nom, âge):
    self.name = nom
    self.age = âge

# une méthode de classe pour créer un objet Dog avec l'année de naissance.
  @classmethod
  def Année(cls, Nom, année):
    retour cls(Nom, la date d'aujourd'hui().année - année)

Ici, Comme vous pouvez le voir, la méthode de classe modifie l'état de la classe. Si nous avons l'année de naissance de n'importe quel chien au lieu de l'âge, puis à l'aide de cette méthode on peut modifier les attributs de la classe.

Vérifions ça:

Chien1 = Chien('Bruno', 1)
Chien1.nom , Chien1.age
capture d

Ici, nous avons construit un objet de la classe. Cela prend le nom et l'âge de deux paramètres. En imprimant les attributs de la classe on obtient Bruno et 1 comme une sortie, quelles étaient les valeurs que nous avons fournies.

Chien2 = Chien.Année('Ratière', 2017)
Chien2.nom , Chien2.age

capture d

Ici, nous avons construit un autre objet de la classe Chien en utilisant la méthode de la classe. Année(). La méthode Année () prendre la classe Person comme premier paramètre cls et renvoie le constructeur en appelant cls (nom, fecha.aujourd'hui (). année – année), ce qui équivaut à Chien (nom, la date d'aujourd'hui (). Année – année).

Comme vous pouvez le voir en imprimant le nom et l'âge de l'attribut, nous avons obtenu le nom que nous avons fourni et l'âge converti à partir de l'année de naissance en utilisant la méthode de classe.

Méthode statique – Ils sont utilisés pour créer des fonctions utilitaires. Pour effectuer des tâches de programmation de routine, on utilise des fonctions utilitaires. Un exemple simple pourrait être:

Calculatrice de classe:
 
  @méthodestatique
  def ajouter(X, Oui):
    retourner x + et

imprimer('La somme est:', Calculatrice.ajouter(15, 10))

capture d

Vous pouvez voir que le cas d'utilisation de cette méthode statique est très clair, addition des deux nombres donnés en paramètres. Chaque fois que je dois additionner deux nombres, vous pouvez appeler cette méthode directement sans vous soucier de la construction de l'objet.

Remarques finales

Dans cet article, nous avons appris les méthodes Python, les types de méthodes et nous avons vu comment implémenter chaque méthode.

Je vous recommande de revoir ces ressources sur la programmation orientée objet:

Faites-moi savoir dans la section commentaire ci-dessous si vous avez des questions ou des commentaires. Bon apprentissage!

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.