Quest-ce que le self en Python ? Exemples concrets

Quest-ce que le self en Python ? Exemples concrets

Lors de l'écriture de classes en Python, vous pouvez souvent rencontrer le terme 'self.'Il s'agit d'un concept crucial que les débutants doivent comprendre lorsqu'ils approfondissent les fonctionnalités orientées objet du langage de programmation Python.

Le selfparamètre fait référence à l'instance actuelle d'une classe. Vous pouvez l'utiliser pour accéder aux attributs et aux méthodes qui appartiennent à cette classe.

Dans ce tutoriel Python, nous allons explorer comment la selfvariable joue un rôle central dans les classes Python. Nous vous montrerons également comment maintenir la clarté, la modularité et la réutilisabilité du code grâce à l'utilisation de self.

Table des matières

Comprendre soi en Python

Python est un langage de programmation orienté objet (POO) qui s'appuie fortement sur les classes et les objets. Ainsi, avant de plonger dans le selfparamètre, nous devons d'abord comprendre ce qu'est la programmation orientée objet.

Programmation orientée objet en Python

Qu'est-ce que le self en Python ? Exemples concretsÉcriture à la craie - POO, programmation orientée objet " data-medium-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg" data- large-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" decoding="async" loading="paresseux" src="https : //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="Qu'est-ce que Self en Python." class="wp-image-206807" width=" 709" hauteur="472" srcset="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg 612w, https://blog.enterprisedna.co /wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg 300w, https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-560x372.jpg 560w" tailles="(max-width : 709px) 100vw, 709px">

La programmation orientée objet aide les programmeurs à modéliser des concepts et des relations du monde réel grâce à l'utilisation de classes et d'objets. Cela se traduit par un code plus structuré, réutilisable et évolutif.

Considérez une classe comme un modèle pour créer des objets avec des propriétés et des méthodes prédéfinies. De plus, un objet est une instance d'une classe qui stocke ses propres valeurs pour les attributs et a accès aux fonctions de classe.

Ces deux concepts sont un bloc de construction important dans de nombreuses applications Python . Vous pouvez voir à la fois les classes et les objets au travail dans cette vidéo sur Comment créer facilement des données avec la bibliothèque Python Faker.

Le rôle de Python Self

Self est une référence à l'instance de la classe en Python. Il vous permet d'accéder et de modifier les attributs et les méthodes d'une classe dans sa propre portée.

Voici quelques points clés sur l'utilisation de self en Python :

  • Selfn'est pas un mot clé réservé dans la syntaxe Python . Vous pouvez utiliser d'autres noms pour identifier les instances de classe, mais selfil s'agit de la convention la plus largement utilisée et acceptée par les programmeurs Python.
  • Selfest utilisé comme premier paramètre dans les méthodes d'instance pour référencer l'instance actuelle de la classe.
  • Vous pouvez utiliser selfpour faire la distinction entre les attributs d'instance et les variables locales, ce qui rend votre code plus lisible et moins bogué.
  • Lors de l'appel d'une méthode d'instance, Python passe automatiquement l'instance comme premier paramètre.
  • Vous devez déclarer le selfparamètre dans le __init__() constructeur et tous les autres constructeurs de fonction suivants dans votre classe. Si vous ne le faites pas, votre programme lancera un fichier typeerror.

    Vous pouvez voir un exemple de cette erreur ci-dessous :

class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given

Remarque : Vous pouvez contourner l'utilisation du self paramètre dans les fonctions en utilisant la fonctionnalité de méthode statique fournie par Python 3. Nous reviendrons plus en détail là-dessus dans une section ultérieure.

Travailler avec soi

Qu'est-ce que le self en Python ? Exemples concrets

Apprendre à utiliser self est très important pour créer des classes en Python. Tout au long de cette section, vous apprendrez à utiliser self dans différents scénarios lorsque vous travaillez avec des classes et des objets.

Initialisation d'objets avec '__init__()'

Qu'est-ce que le self en Python ? Exemples concrets

Lors de la création d'une nouvelle instance d'une classe, la __init__() méthode est appelée pour initialiser les attributs de l'objet. La __init__() méthode est le constructeur de la classe et prend le self paramètre comme premier argument.

Le selfparamètre est utilisé dans cette méthode pour associer les attributs d'instance aux arguments donnés.

Voici un exemple :

class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)

Dans cet exemple, la méthode prend , et comme paramètres lors de l'initialisation de l'objet. Le paramètre fait référence à l'instance de classe, vous permettant de définir les attributs et pour l'objet spécifique en cours de création. init selfnameageself nameage

Utilisation de soi dans les méthodes

Lors de la définition de méthodes d'instance dans une classe, vous devez inclure self comme premier paramètre. Cela vous permet d'accéder aux attributs d'instance et à d'autres méthodes au sein de la classe.

Développons l'exemple précédent :

class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()

Dans cet exemple, la introduce()méthode inclut selfcomme premier paramètre. Cela vous permet d'accéder aux attributs de nom et d'âge de l'objet et de créer une introduction personnalisée.

Lorsque vous appelez la méthode dans votre code, vous n'avez pas besoin de transmettre self explicitement le paramètre. Python s'en charge automatiquement.

En suivant ces directives et en comprenant le but de selfPython , les débutants peuvent travailler efficacement avec des classes et des objets. Cela leur permet de créer un code bien structuré, facile à lire et à entretenir.

Cas d'auto-utilisation courants

Qu'est-ce que le self en Python ? Exemples concrets

Il existe de nombreuses façons d'utiliser le mot-clé dans votre code Python. En comprenant ces cas d'utilisation, vous pourrez les utiliser efficacement dans vos programmes. self self

Regardons certains d'entre eux :

Accéder aux attributs de classe

L'une des principales utilisations de selfconsiste à accéder aux attributs d'instance au sein d'une classe. Les attributs d'instance sont spécifiques à un objet créé à partir de la classe et stockent les données de l'objet.

L'utilisation selfvous permet de manipuler ou d'accéder à ces attributs dans les méthodes de classe. Regardons un exemple :

class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)

Dans cet exemple, nous avions l'habitude self d'accéder à l'attribut name d'un objet Dog dans la display_name méthode.

Appel de méthodes de classe

Un autre cas d'utilisation courant selfconsiste à appeler d'autres méthodes de classe à partir d'une méthode d'instance. Cela vous permet de réutiliser le code, de réduire la complexité et d'améliorer la lisibilité.

Il est essentiel de l'utiliser selflorsque vous faites référence à d'autres méthodes, car cela garantit que la bonne méthode est appelée pour l'instance spécifique. Considérez l'exemple suivant :

class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)

Dans l'exemple ci-dessus, nous utilisons selfpour appeler la show_speciesméthode depuis la show_infométhode. Cela nous permet d'afficher l'espèce et la couleur de l'oiseau en un seul appel.

Enfin, n'oubliez pas d'utiliser selflors de l'accès aux attributs d'instance et de l'appel des méthodes de classe. Une fois que vous aurez compris ces cas d'utilisation, vous serez en mesure d'écrire du code Python plus efficace et organisé.

Meilleures pratiques personnelles

Qu'est-ce que le self en Python ? Exemples concrets

Lorsque vous travaillez avec, self,vous devez suivre certaines conventions pour éviter les problèmes et les bogues dans votre code. En voici quelques uns.

Où utiliser soi-même

Lors de la définition de méthodes d'instance, utilisez toujours le selfparamètre comme premier paramètre. Cela vous permet d'accéder et de modifier les attributs d'instance de l'objet et d'appeler d'autres méthodes d'instance au sein de la classe.

Il est important de l'utiliser selflorsque vous travaillez avec des instances d'objet en Python. Son utilisation garantit un comportement cohérent et permet une encapsulation correcte des objets.

Par exemple, considérons la classe suivante :

class MyClass: def __init__(self, my_var): self.my_var = my_var

Ici, le paramètre self est utilisé dans la __init__ méthode pour initialiser l' my_var attribut de l'instance d'objet. De cette façon, devient un attribut spécifique à l'instance. my_var

Par conséquent, il est possible d'y accéder et de le modifier à l'aide de l'auto-référence dans d'autres méthodes de la classe.

Conventions de nommage pour soi

Alors que selfc'est le nom conventionnel utilisé pour l'instance en Python, vous pouvez techniquement utiliser n'importe quel nom que vous aimez. Cependant, il est fortement recommandé de vous en tenir à l'utilisation de self pour plus de clarté et de cohérence avec la communauté Python au sens large.

L'utilisation d'un nom différent peut être source de confusion pour ceux qui lisent et travaillent avec votre code, en particulier s'ils sont habitués aux conventions de dénomination standard des bibliothèques Python.

Où ne pas s'utiliser soi-même

Nous savons déjà que le selfparamètre donne accès à l'instance de l'objet. Cependant, dans certains cas, certaines fonctions de la classe peuvent ne pas nécessiter l'accès à l'instance d'objet.

Dans ce scénario, le paramètre self n'est pas nécessaire. Ainsi, Python fournit une fonctionnalité de méthode statique pour contourner le paramètre self :

Voici un exemple :

class Car: @staticmethod def print_car(): print('Vroom Vroom')

Dans l'exemple ci-dessus, le @staticmethoddécorateur de fonction remplace l' selfexigence de paramètre dans la méthode. De cette façon, la fonction s'exécutera même si aucune instance d'objet ne lui est transmise.

Conclusion

Qu'est-ce que le self en Python ? Exemples concrets

En résumé, le paramètre self en Python fait référence à l'instance d'une classe et vous permet d'accéder à ses attributs et méthodes. En tant que développeur Python, il est important de comprendre le but de self et son utilisation dans les classes et les objets.

En utilisant self de manière cohérente dans votre code, vous favorisez la lisibilité et la maintenabilité, ce qui améliore la qualité globale de votre travail.

N'oubliez pas non plus que même si vous pouvez voir le terme "self"fréquemment utilisé en Python, il ne s'agit pas d'un mot-clé Python réservé. Cela diffère des langages de programmation comme Javascript et Java , où "this" est un mot-clé réservé.

Vous pouvez nommer le premier paramètre d'une méthode de classe comme bon vous semble ; " self" est juste la convention préférée.

Le soi est-il un mot-clé en Python ? 

Il y a une question qui plane toujours parmi les programmeurs Python. Le self est-il réellement un mot-clé en Python ? 

Contrairement à d'autres langages de programmation comme C++, où self est considéré comme un mot-clé, en Python, il s'agit d'une convention que les programmeurs ont tendance à suivre. Il s'agit essentiellement d'un paramètre dans une définition de méthode. Cependant, vous pouvez utiliser n'importe quel autre nom à la place de soi, comme un autre ou moi ou toute autre chose pour le premier paramètre d'une méthode. Une autre raison pour laquelle cela est suggéré par la plupart des gens est que cela améliore la lisibilité de votre code. 

Voyons un exemple pour le comprendre : 

class myClass :   def show(another) :   print ("un autre est utilisé à la place de soi")  

Si vous comparez ce code avec le code de l'auto-constructeur de classe Python, vous remarquerez qu'ici nous avons utilisé le nom un autre dans lieu de soi. Créons maintenant un objet de cette classe et voyons le résultat : 

objet = maClasse()   object.show()

Vous pouvez voir que le programme fonctionne même si nous utilisons un autre nom à la place de la variable self. Cela fonctionne exactement de la même manière que la variable self. 


Quest-ce que le self en Python ? Exemples concrets

Quest-ce que le self en Python ? Exemples concrets

Qu'est-ce que le self en Python ? Exemples concrets

Comment enregistrer et charger un fichier RDS dans R

Comment enregistrer et charger un fichier RDS dans R

Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.

First N Business Days Revisited - Une solution de langage de codage DAX

First N Business Days Revisited - Une solution de langage de codage DAX

Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.

Introduction au filtrage du contexte dans LuckyTemplates

Introduction au filtrage du contexte dans LuckyTemplates

Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.

Idées de matérialisation pour les caches de données dans DAX Studio

Idées de matérialisation pour les caches de données dans DAX Studio

Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.

Rapports dentreprise à laide de LuckyTemplates

Rapports dentreprise à laide de LuckyTemplates

Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir