Python OOP (programmation orientée objet) | Jayanta Sarkar | Skillshare
Recherche

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Python OOP (programmation orientée objet)

teacher avatar Jayanta Sarkar, full stack web developer and Python prog

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      introduction

      1:21

    • 2.

      Qu'est-ce que l'oop

      2:07

    • 3.

      Qu'est-ce que l'encapsulation

      2:15

    • 4.

      Qu'est-ce que l'abstraction

      1:43

    • 5.

      Héritage

      3:02

    • 6.

      Polymorphisme

      1:50

    • 7.

      Créer notre premier cours dans Python

      5:43

    • 8.

      Différence entre une variable d'instance et une variable de classe

      4:14

    • 9.

      Self & init () (constructeurs)

      8:13

    • 10.

      Méthodes de cours en Python

      4:51

    • 11.

      Méthodes de cours comme constructeurs alternatifs

      5:58

    • 12.

      Méthodes statiques dans Python

      3:18

    • 13.

      Qu'est-ce que l'abstraction et l'encapsulation

      4:32

    • 14.

      Introduction à l'héritage dans Python

      8:25

    • 15.

      Héritage unique avec constructeur

      4:15

    • 16.

      Héritage multiple

      14:05

    • 17.

      Héritage à plusieurs niveaux dans Python

      5:04

    • 18.

      Spécificateurs d'accès public, privé et protégé

      3:16

    • 19.

      Introduction au polymorphisme

      3:56

    • 20.

      Super() et annuler dans les classes

      8:39

    • 21.

      Problème de forme de diamant dans un héritage multiple

      5:27

    • 22.

      Surcharge d'opérateur et méthodes peu efficaces

      3:55

    • 23.

      Cours de base abstrait

      3:40

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

8

apprenants

--

projet

À propos de ce cours

Libérer tout le potentiel de Python en maîtrisant les principes de la programmation orientée objet (POO). Dans ce cours complet, vous apprendrez à structurer votre code Python en utilisant des classes, des objets, l'héritage, le polymorphisme et l'encapsulation. Que vous soyez débutant cherchant à comprendre les bases ou un développeur expérimenté cherchant à affiner vos compétences, ce cours est conçu pour vous guider à travers les concepts de base et les techniques avancées de la POO dans Python.

Nous commencerons par les concepts de base et nous explorerons comment la POO peut vous aider à écrire un code plus propre, plus efficace et plus évolutif. Au fur et à mesure de vos progrès, vous vous plongerez dans des sujets plus avancés tels que l'héritage des cours, les cours abstraits et les méthodes magiques, vous vous assurant d'acquérir une compréhension approfondie de la façon d'exploiter les fonctionnalités de POO de Python dans des applications réelles.

À la fin de ce cours, vous disposerez des connaissances et des compétences nécessaires pour créer des programmes Python complexes et orientés objet, rendant votre code plus modulaire, réutilisable et gérable.

Rencontrez votre enseignant·e

Teacher Profile Image

Jayanta Sarkar

full stack web developer and Python prog

Enseignant·e

Jayanta Sarkar is a dedicated Python programmer and full-stack web developer with a passion for creating dynamic and interactive web applications. With a robust background in both front-end and back-end development, Jayanta excels in building seamless user experiences and efficient, scalable systems.

Over the years, Jayanta has honed his skills in various programming languages and frameworks, making him proficient in technologies such as JavaScript, CSS, HTML, and MySQL. His expertise extends to developing comprehensive solutions that integrate sophisticated database management with intuitive user interfaces.

Jayanta's journey in the tech industry is marked by a continuous drive to learn and adapt to new technologies. He has developed and published several successful cours... Voir le profil complet

Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. intro: Bonjour. Bienvenue dans le cours de programmation orientée objet en Python. Je m'appelle Joan Shorker et je suis programmeuse Python et développeuse web fullstack Voici un nouveau cours lié à la programmation orientée objet en Python. Ce cours est spécialement conçu pour les débutants qui souhaitent simplement apprendre le concept de programmation orientée objet. J'ai décrit très simplement la programmation orientée objet dans ce cours. Dans ce cours, je vais aborder tous les concepts liés aux classes de programmation orientées objet, à l'encapsulation d' objets, au polymorphisme, à l'héritage, à l'abstraction, etc. Ce sont tous les sujets que je vais aborder dans cette série de tutoriels. Nous allons apprendre quelle est la différence entre une variable d'instance et une variable de classe. Nous allons en apprendre davantage sur les constructeurs self et innit, la méthode de classe, les constructeurs alternatifs, tous les types d'héritage, protection privée et Classes supérieures et supérieures, problèmes de forme du diamant, etc. Après COO, tout ce concept, nous allons créer un mini-projet basé sur la programmation orientée objet Nous allons créer un système de gestion de bibliothèque, et ce serait un bon mini-projet permettant aux débutants comprendre le concept de programmation orientée objet. Ce cours s'adresse aux débutants, pas aux nerfs. ne s'agit pas d'un cours de niveau très avancé, mais pour un débutant, c'est un bon cours. Qu'est-ce que tu attends ? Inscrivez-vous à ce cours dès maintenant 2. Qu'est-ce que oop: Essayons donc de comprendre ce qu'est la programmation orientée objet. La programmation orientée objet est un modèle de langage de programmation organisé autour d'objets plutôt que d'actions et non de logiques. Tout d'abord, il ne s'agit pas d'un langage de programmation. Il s'agit simplement d'un modèle pour écrire du code. De nombreux langages de programmation prennent en charge la programmation orientée objet. Où nous utilisons des objets plutôt que des fonctions. Essayons de le comprendre d'une manière simple. Par exemple, un objet peut représenter une personne avec des propriétés telles que son nom, son âge, son adresse et des comportements tels que marcher, parler, respirer et courir. Nous pouvons appeler une personne un objet et nous pouvons appeler ses propriétés des classes. Nous allons en apprendre davantage sur les cours dans nos prochains tutoriels. Maintenant, qu'est-ce que la programmation orientée objet en Python ? Comme tous les autres langages de programmation orientés objet, il vous permet de définir des classes pour créer des objets Les classes sauvages sont les types de données les plus courants en Python, tels que les chaînes, les listes, les dictionnaires, etc. Maintenant, qu'est-ce que la classe ? Une classe est un ensemble de variables d' instance et de méthodes associées qui définissent un type d'objet particulier. Vous pouvez considérer une classe comme plan d' objet ou un modèle, et les attributs sont les noms donnés aux variables qui composent une classe Une instance de classe dotée d'un ensemble défini de propriétés est appelée objet. Par conséquent, la même classe peut être utilisée pour construire autant d' objets que nécessaire. En gros, je veux dire que nous pouvons réutiliser nos classes pour créer plusieurs objets. C'est un plan que nous pouvons utiliser plusieurs fois. Maintenant, la question qui se pose est la suivante : quel est l'avantage d'utiliser la programmation orientée objet ? Il est permis de diviser le programme en problèmes de taille de bits qui peuvent être résolus facilement. Et il suit aussi la sécheresse à cause de cela. Sécher signifie ne pas vous répéter. Nous comprendrons plus tard pourquoi j'ai dit cela. 3. Qu'est-ce que l'encapsulation: Bon retour, les gars. Il s'agit notre premier tutoriel sur programmation orientée objet en Python. Et dans ce tutoriel, nous allons apprendre le concept de programmation orientée objet. Concept de programmation orienté objet basé sur quatre piliers. Notre premier pilier est l'encapsulation, le deuxième pilier est abstraction, le troisième est l'héritage, et notre dernier pilier est le polymorphisme Dans ce tutoriel, nous allons apprendre ce qu'est l'encapsulation. Ensuite, un par un, nous allons en apprendre davantage sur les piliers. Essayons de comprendre ce que signifient les atouts d' encapsulation de la programmation orientée objet L'encapsulation est définie comme le regroupement des données dans une seule unité. Quelle est la signification de ? En gros, en utilisant l'encapsulation, nous pouvons encapsuler des données. Voyons un exemple et essayons de comprendre quand l' encapsulation est pratique Supposons que nous créions au total trois variables, A, B et C. Après avoir créé la variable, nous tapons des milliers de lignes de code. Après mille lignes de code, par erreur, je crée le même membre variable. Comme vous pouvez le voir, B. Cela signifie que la variable V existe déjà dans notre document. Cela va créer un problème. Certains langages de programmation ne le permettent pas. Et certains langages de programmation obtiennent la variable et attribuent une nouvelle variable pour résoudre ce problème, nous avons utilisé l'encapsulation À l'aide de l'encapsulation, nous encapsulons ces données. Après avoir encapsulé ces données et après les avoir encapsulées, nous les rendons également Après l'avoir rendu privé, personne ne peut y accéder à l'extérieur sauf si vous y êtes autorisé. Cela signifie que si vous redéclarez la variable en dehors de cette capsule, elle agira comme une variable différente et le nom de la variable ne sera plus en conflit avec le nom de la variable Cela signifie que ces variables ne fonctionnent que pour une classe particulière. Et vous pouvez également utiliser le même nom de variable dans une classe différente. Ensuite, vous pouvez créer un autre nom de variable en utilisant B. En gros, je veux dire que nous pouvons contrôler le conflit de noms en utilisant l'encapsulation. J'espère que vous comprenez maintenant ce qu'est l'encapsulation et que nous allons en apprendre davantage à ce sujet dans nos prochains tutoriels Ici, je discute simplement du concept de programmation orientée objet. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain tutoriel. 4. Qu'est-ce que l'abstraction: C'est bon de vous voir. Encore une fois, je suis de retour avec un nouveau programme orienté objet Python lié à un tutoriel . Dans ce tutoriel, nous allons apprendre ce qu'est l'abstraction. Comme je vous l'ai dit, il s'agit du deuxième pilier du programme orienté objet. Essayons donc de comprendre quel est le sens de l'abstraction. L'abstraction est le concept de programmation orientée objet qui ne montre que les attributs essentiels et les hauteurs d'informations inutiles. Dans un langage simple, indiquant ce qui est nécessaire et la hauteur, ce qui n'est pas nécessaire. Il ne se soucie de rien d'autre. J'ai juste besoin des données nécessaires. Par exemple, nous avons un ordinateur et il est fait avec clavier. Si vous voulez déplacer le curseur, vous devez déplacer la souris vous devez déplacer Mais je ne veux pas savoir comment la souris a été fabriquée. Et ce qu'il y a dans la bouche. Ce n'est pas nécessaire pour moi. Mon but est juste de bouger la bouche. Je ne veux pas savoir ce qui se passe en arrière-plan. Ce qu'il y a à l'intérieur de la souris nous est caché. Et en termes de programmation orientée objet, nous l'appelons abstraction. Nous ne voulons pas montrer d' informations inutiles à l'utilisateur. Essayons de le comprendre d'une manière plus simple. Supposons que ce soit vous et que vous demandiez de l'argent à votre père. Et c'est la responsabilité de ton père d'apporter l'argent, et tu n'as pas besoin de savoir d'où ton père l'a obtenu. Tu crées simplement la demande et ton père y pourvoit. Ce concept de dissimulation est appelé abstraction. J'espère que c'est clair maintenant. Merci d'avoir regardé cette vidéo, restez connectés pour la prochaine. 5. Héritage: Bonjour les gars, c'est bon de vous voir. Encore une fois, je suis de retour avec un nouveau tutoriel et dans ce tutoriel, nous allons apprendre le troisième concept de programmation orientée objet, qui est l'héritage. Dans notre précédent tutoriel, nous allons en apprendre davantage sur l'encapsulation et l'abstraction Dans ce tutoriel, nous allons apprendre l'héritage. C'est l'un des concepts les plus importants du programme orienté objet. Nous utilisons l'héritage avec les objets de classe. Essayons de comprendre ce qu'est l'héritage. En termes simples, hériter signifie hériter de quelque chose. Je tiens à dire que le fait d'obtenir quelque chose de génération en génération s' appelle héritage. Et si je parle d'un exemple concret, vous obtenez des biens de votre père et votre fils obtient également des biens de lui. Nous appelons ce mécanisme des héritages. Maintenant, la question est : qu'est-ce que l'héritage dans un programme orienté objet ? L'héritage nous permet de définir une classe qui hérite de toutes les méthodes et propriétés d'une autre classe Essayons maintenant de le comprendre en termes plus simples avec une image. Supposons que ce soit votre grand-père et votre grand-père ait possédé beaucoup de terres dans le passé. À un terme orienté objet, nous pouvons appeler votre grand-père la classe des grands-parents, puis il décide de donner toutes les terres à son fils. Quand est ton père ? Je veux dire que votre père a obtenu des biens de votre grand-père, mais que votre père lui-même possède de nombreuses propriétés. Votre père a acheté de nombreuses actions, votre père possède maintenant deux types de propriétés. Il peut donc vendre ses terres et ses propres actions s'il le souhaite. Mais votre père décide de transférer ses biens ancestraux et ses actions à votre nom. Mais vous avez vous-même acquis beaucoup de biens. Vous avez beaucoup de cryptomonnaies. Donc, si vous le souhaitez, vous pouvez utiliser votre propre cryptomonnaie. Sinon, ce sont les actions de votre père, sinon c'est votre grand-père qui gagne. Mais ton grand-père ne peut pas utiliser la part de ton père. De plus, votre père ne peut pas utiliser vos cryptomonnaies, mais votre père peut utiliser les terres de son père, mais votre grand-père n' est pas autorisé à utiliser les actions de son fils. De même, votre père ne peut pas utiliser vos cryptomonnaies, mais vous devez y accéder à toutes. Vous pouvez utiliser des terres, des actions et vous pouvez également utiliser vos propres crypto-monnaies. Fondamentalement, nous contrôlons la répétabilité en utilisant l'héritage. Comprenons-le maintenant avec un terme orienté objet. Supposons que le terrain de votre grand-père soit une fonction et que la part de votre père soit également une fonction, vous n'avez pas besoin de saisir les deux fonctions dans la classe de votre enfant. Vous pouvez y accéder quand vous le souhaitez, mais votre grand-père et votre père ne peuvent pas accéder à vos propriétés. J'espère que vous comprenez maintenant ce qu'est l'héritage. J'ai essayé de vous expliquer d'une manière très simple. Merci d'avoir regardé cette vidéo, restez à l'affût pour la prochaine. 6. Polymorphisme: C'est bon de vous voir, mais les gars. Encore une fois, je suis de retour avec un nouveau tutoriel lié à la programmation orientée objet en Python. Dans ce tutoriel, nous allons apprendre le dernier concept de la programmation orientée objet, à savoir le polymorphisme La première question est la suivante : qu'est-ce que le polymorphisme ? Et à quoi sert le polymorphisme dans la programmation orientée objet ? Le mot polymorphisme signifie avoir de nombreuses formes. En programmation, le polymorphisme signifie que le même nom de fonction est utilisé pour différents types Essayons de le comprendre d'une manière simple. Nous avons tous parlé du service client à un moment ou à un autre de notre vie. Et lorsque nous appelons le service client, on nous demande d'appuyer sur un numéro différent , quatre tâches différentes. C'est exactement là que fonctionne le polymorphisme. Supposons que nous définissions ici une fonction nommée Appuyez sur le bouton et qu' à l'intérieur de cette fonction, nous ayons un total de quatre , le bloc un, le bloc deux , le bloc trois et le bloc quatre. Si nous appuyons sur un, la fonction sera appelée, mais elle exécutera cette instruction de bloc, l'instruction bloc numéro un, et ce blog nous montrera le solde. De même, si vous appuyez sur deux, la fonction sera appelée, mais elle exécutera cette instruction de bloc et renverra une validité. De même pour les données Internet, nous devons appuyer sur trois, et si vous souhaitez parler au responsable du service client dans ce cas, vous devez appuyer sur quatre Ici, nous n'avons qu'une seule fonction, mais elle peut afficher des résultats différents en fonction de l'entrée. Selon les entrées, cette fonction va choisir le bloc que l'utilisateur souhaite voir, puis le polymorphisme, exécute le bloc en question sur moi. C'est le concept de polymorphisme. Nous allons en apprendre davantage à ce sujet lors de notre session pratique. Ici, j'essaie juste de vous présenter le concept de programmation orientée objet. Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain studio. 7. Créer notre premier cours en Python: Dans mes précédents tutoriels, je vous présente ce qu'est la programmation orientée objet, et quel est le concept de programme orienté objet. Mais aujourd'hui, à partir de ce tutoriel, nous allons commencer notre voyage pratique. Dans ce tutoriel, je vais créer notre première classe et notre premier objet. Comme vous pouvez le voir, je suis dans mon coordinateur Visual Studio et je crée déjà un fichier Python main point pi où je vais créer une classe. Maintenant, la question est de savoir pourquoi nous utilisons la classe ? Nous réduisons la répétabilité en utilisant les classes et les classes sont très utiles pour organiser notre code . Créons une classe. Pour créer une classe, ne saisiriez-vous pas plus le mot clé, class. Ensuite, nous devons transmettre un nom de classe. Dans notre étude de cas. Ensuite, nous devons utiliser le colon. En gros, ici je vais créer une classe simple, et dans cette classe, je vais juste taper pass. Pour l'instant, je ne veux pas libérer de données dans ma classe. C'est pourquoi j'utilise le pass. Sinon, il retournera zéro. Le pass ne signifie rien. Dans cette classe, je ne crée aucun modèle. Maintenant, il est complètement vide. Généralement, nous saisissons du code dans la classe. Mais pour l'instant, vous devez supposer qu'il s'agit d'un modèle complet, et maintenant nous sommes deux étudiants. Le nom de notre premier étudiant est A one. Et je veux tourner en dérision mon élève en utilisant ce cours, je vais appeler le nom de la classe et le nom de notre classe est étudiant Ensuite, nous devons utiliser des bretelles rondes. Nous avons un autre étudiant issu de la même classe. Je vais dupliquer cette ligne et le nom de notre étudiant est Smith. Comme vous pouvez le constater, nous attribuons à la classe à la fois l'étudiant, Ad one et Smeed. En gros, nous créons deux objets en utilisant cette classe. Notre classe n'est jamais vide. Nous remplissons toujours des données dans cette classe, mais c'est notre premier tutoriel, donc je ne veux pas faire de digations. Comme je vous l'ai dit, ce sont deux objets différents maintenant. Laissez-moi vous le prouver. Ici, je vais taper Prent dans les bases rondes, je vais appeler ces deux variables Ad one et Smet Ici, je vais taper en ajouter un, puis je vais appeler Smith. Si j'exécute mon code, après l'avoir exécuté, vous pouvez voir que vous devez maintenant placer un objet dans un emplacement de mémoire différent, point Mindtstudent à cet endroit et un objet point étudiant man doot à cet emplacement point étudiant Maintenant que c'est effacé, il s' agit de deux objets différents. Je vais maintenant créer une variable d'instance en utilisant ces deux objets. Mais le quotien est : qu' est-ce qu'une variable d'instance ? En gros, je veux dire que nous pouvons définir des variables dans cet objet. Laisse-moi te montrer. Dans un premier temps, je vais ajouter une variable d' instance dans cet objet, en ajouter une. Le nom du point d'annonce est égal à celui indiqué dans le code double, ajoutez-en un. Le nom de l'étudiant est ad one. Maintenant, je vais dire une autre variable, qui est d'ajouter un point g égal à 21. Je vais également ajouter une autre variable d'instance à la section Advan, qui est la section Advant. Je veux taper une section de points adv égale à un. Comme vous pouvez le voir, nous passons trois variables d' instance à cet objet. Maintenant, tuons le terminal et imprimons le nom d'un point, puis définissons ce fichier et exécutons ce code. Vous pouvez maintenant le voir imprimer en ajouter un. Le nom de la variable d' instance est écrit. De même, si j' imprime, j'ajoute un point, un âge, puis que je définis le fichier et que j'exécute le code, vous pouvez maintenant le voir imprimer 21. Nous passons trois variables d'instance à cet objet. Nous pouvons faire la même chose avec Smith et également ajouter variable d'instance différente à Smith. Laisse-moi te montrer. Je vais donc dupliquer ces lignes et ici, je vais supprimer l'Advance, je vais taper Smith smith point n, Smithsmth point H. soit 23, et je ne veux pas ajouter de section à Je veux ajouter la taille de Smith. Je dois taper Smit height. À l'intérieur du double parcours, je vais passer 160 centimètres Maintenant, je veux imprimer Advantage et Smith height. Je vais utiliser une virgule et je veux taper la hauteur du point Smith Smith Si je définis ce fichier et que j'exécute le code, comme vous pouvez le constater, sprinte maintenant à 21 points depuis Advantage et à 160 centimètres de la hauteur de Smith Mais si je passe la section Smith point, laissez-moi vous montrer ceci dans ce fichier, puis dans le code, maintenant vous pouvez voir que c'est une erreur écrite parce que nous ne transmettons pas variable instantanée de section pour Smith. Donc normalement c'est une erreur écrite. Mais généralement, nous créons un modèle dans notre classe et nous définissons toutes les variables nécessaires à ce modèle, nom, norme, section, quelle que soit la variable dont nous avons besoin, et nous pouvons transmettre n'importe quel type de données dans notre Nous pouvons transmettre un numéro de chaîne, une liste, etc. Il s'agit donc d'une simple introduction au cours. Nous créons deux objets en utilisant cette classe, et le nom de notre classe est student. Adwan et Smith sont tous deux issus de la classe des étudiants, et maintenant ils sont des objets Nous apprenons également comment définir variable d' instance pour notre objet. Il s'agit de l'introduction très basique de la classe et de l'objet, et dans notre prochain tutoriel, nous allons l' approfondir. Nous allons apprendre ce qu'est une variable de classe , ce qu'est un constructeur, ce qu'est un constructeur alternatif, une méthode statique, une encapsulation d'abstraction, etc. Alors merci d'avoir regardé cette vidéo, restez connectés 8. Différence entre la variable d'instance et la variable de cours: Combat. Pour vous voir, les gars. Encore une fois, je suis de retour avec un nouveau tutoriel, relatif à la programmation orientée objet en Python. Dans notre précédent tutoriel, nous allons découvrir ce qu' est une variable d'instance. Dans ce tutoriel, nous allons découvrir ce qu'est une variable de classe. Si je configure ce fichier et que j'exécute ce code, comme vous pouvez le voir, je vais retrouver cet âge d'étudiant. Comme je vous l'ai dit dans notre précédent tutoriel, il s'agit d'une variable d'instance. Cette variable ne fonctionne que pour cet objet, et maintenant je vais créer une variable qui fonctionnera sur chaque objet. Pour le créer, nous devons utiliser une variable de classe. Mais la question est de savoir pourquoi nous devons utiliser une variable de classe ? Parce que notre objet a été généré à partir de cette classe, notre objet a été créé à partir de cette classe. C'est pourquoi nous devons utiliser chacun d'eux. Nous avons donc maintenant besoin d'une variable déjà présente dans le modèle. Je vais donc créer une variable dans cette classe d'étudiants, et le nom de notre variable est le nombre de feuilles. Soulignement numérique, ou soulignement par sauts. Nous utilisons donc une variable de classe dans notre classe d'étudiants. Si j'imprime, ajoutez un point de feuilles, puis définissez ce fichier et lancez le sce Comme vous pouvez le voir, c'est maintenant écrit « queue ». Ce n'est pas la propriété personnelle de cet objet. Cette valeur provient de la classe étudiante, qui correspond à l' ensemble de cet objet. Si j'imprime des feuilles à points Smith, laissez-moi vous montrer le numéro à points sm Bleips, puis définissez ce fichier et exécutez-le Maintenant, vous pouvez également voir qu'il renvoie la queue car les deux objets proviennent directement de cette classe. Nous pouvons accéder à la propriété de la classe en utilisant un objet. Non seulement un objet, vous pouvez également accéder à cette variable à partir de la classe. Laisse-moi te montrer. Si je réussis un étudiant ici, laissez-moi vous montrer le nombre de feuilles par point , puis définir ce fichier et exécuter ce code. Comme vous pouvez le voir, cela s'écrit tan. Si vous souhaitez modifier la valeur, vous ne pouvez modifier la valeur d'aucun objet. Vous ne pouvez le modifier que par le biais de la classe. Laisse-moi te montrer. Essayons de modifier le nombre de sauts en utilisant l'objet Smith Ici, je vais taper le nombre de points Smith , égal à cinq Si j'imprime la même déclaration après, laissez-moi vous la montrer et ils définiront ce fichier et exécuteront mon code. Comme vous pouvez le constater, vous ne changez pas. Nous ne pouvons pas modifier la valeur de la variable de classe d'un objet, mais cette ligne crée une variable d'instance pour l'objet Smith. Si je commente cette ligne et si j'imprime, je dis les presses rondes, Smeth marque le nombre de pistes, puis je définis ce fichier et je lance le devis Vous pouvez maintenant voir que c'est écrit cinq parce que cette ligne crée une nouvelle variable de position pour l'objet Smith. C'est pourquoi il est écrit cinq. C'est pourquoi il remplace la variable de classe, et il est écrit cinq Mais si vous remarquez, vous pouvez voir que notre variable de classe toujours écrite a. Laissez-moi vous le prouver. Je vais tuer le terminal et commenter les deux lignes. Je vais maintenant appeler un attribut, qui est un attribut de dictionnaire , un attribut dict. Ici, je vais taper print dans les vers ronds, je vais appeler add sco, dt. De plus, je vais prendre cette ligne, et cette fois, je vais la lancer pour des raisons de rapidité. Si je définis ce fichier et que j'exécute le code, vous pouvez maintenant voir dans l'objet Advance que nous avons au total trois roues de propriétés. Mais dans l'objet Smith, nous devons indiquer la valeur de quatre propriétés. La valeur supplémentaire est le nombre oblit cinq car nous transmettons cette variable d'instance N'oubliez pas que vous ne pouvez pas modifier propriété du clus principal par le biais d'un objet Je veux dire que vous pouvez changer valeur de la variable de classe à partir de la classe sur moi. Il s'agit d'une classe thématique de propriétés qui fait partie du modèle. En gros, cette valeur sera partagée avec tous les objets créés par cette classe et le nom de notre classe est Spubal J'espère que vous savez maintenant quelle est la différence entre classe et une variable d' instance. Merci d'avoir regardé cette vidéo. Restez à l'affût pour les deux prochains. 9. Self et init () (builders): Bonjour, les gars. C'est bon de vous y voir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à la programmation orientée objet en Python. Dans ce tutoriel, nous allons apprendre à utiliser un constructeur innit et à sous-coder Dans notre précédent tutoriel, nous allons découvrir ce qu'est une variable d'instance et ce qu' est une variable de classe, et quelle est la différence entre ces deux variables. Donc, d'abord, je vais créer une méthode dans cette classe. Je vais supprimer le pass. Comme vous le savez, les méthodes sont fonctionnelles. Ici, je vais taper Dave et le nom de notre fonction est le code PIN. Ensuite, à l'intérieur de la robe, je vais utiliser un mot Q, qui est self is a parameter Ensuite, insérez cette fonction. Pour l'instant, ici, je vais taper pass. Maintenant, le quotien est qu'est-ce que le soi ? Self désigne l'objet créé avec cette classe. Supposons que je souhaite exécuter la fonction Print Details pour Adan, Adv Dot Print Details Dans ce cas, self serait AdVan. Pour le faire déchirer, je vais renvoyer une déclaration. Ici, je vais taper return, return, et je vais utiliser stream. Chaîne à l'intérieur des codes doubles, Names. Au Calviss, je veux maintenant accéder à l' objet adv Ici, je vais passer le nom du point personnel. Comme vous pouvez le voir, nous passons une variable instantanée à un nom de point. Cela signifie qu'il va revenir sous un seul nom. Alors que je vais imprimer des pages , au point Cali Vss self H. Il suffit de lui donner pour comprendre que self signifie l'objet sur lequel la fonction sera Appelons la fonction et essayons d'imprimer les détails d'AdVAN. Ici, je vais taper print et à l'intérieur des cuivres ronds, je vais taper Ad one point print details Définissons le code et exécutons-le. Comme vous pouvez le voir dans mon terminal, son nom d'impression est ad, g est 21. Mais si vous remarquez, vous pouvez voir nous ne transmettons aucun paramètre dans la fonction d'impression des détails. Il s'agit de l'utilisation de la méthode autonome. Il peut identifier l'objet, et nous pouvons également accéder à la variable object instes à l'aide de la cellule De même, si vous souhaitez imprimer les détails de Smith, vous devez le faire sur cette ligne et ici vous devez transmettre le nom de l'objet Smith. Smith. Si je configure ce fichier que je commente celui-ci reconfigure et que je lance le code, vous pouvez maintenant voir dans mon terminal que son nom d'impression est Smith, 23 ans. C'est la règle de la programmation orientée objet. Par défaut, il va envoyer cet objet en tant que paramètre. Laissez-moi vous le prouver. Si j'en supprime self , puis que je définis ce code et que je l'exécute, comme vous pouvez le voir, c'est une erreur écrite. Mais Sprint, Student Dot Print ne prend aucun argument positionnel, mais un argument a été donné Je veux dire, par défaut, il envoie un argument à cette fonction. C'est pourquoi nous devons utiliser L pour gérer cet argument. Nous voulons donc passer à nouveau le SLT. J'espère que maintenant tu comprends ce qu'est le soi. De cette façon, nous implémentons des méthodes dans notre classe et vous pouvez créer plusieurs méthodes autant que vous le souhaitez. Nous allons maintenant apprendre ce qui est construit. Comme vous pouvez le constater, lorsque nous créons l'objet, manuellement, nous devons transmettre les variables d'instance à cet objet. Mais quoi ? Si nous transmettons l'argument à la classe étudiante et que grâce à cet argument, nous pouvons pour le nom des valeurs avancer H 21, section 1, alors ce serait formidable. Je vais te montrer ce que je veux dire. Je vais donc commenter ces lignes. Je souhaite envoyer un argument à cette classe. Laisse-moi te montrer. Au début, nous devons passer le nom de navigation, en ajouter un. 21 ans, section 1, comme ça. Mais si je définis ce fichier et que j'imprime le nom du point adv, laissez-moi vous montrer le nom du point adv et exécuter ce code Comme vous pouvez le voir, c'est une erreur d'écriture. Comme vous pouvez le constater, les élèves de notre classe n'expriment aucun argument. Le processus de transmission d' arguments à une classe s' appelle construct, et pour passer des arguments dans notre classe, nous devons créer Init construct, et pour utiliser la méthode init, nous devons taper Do undersco int, IN IT et sa pile L comme Nous pouvons maintenant accepter la variable d'instance comme argument. Pour cela, après la cellule, nous devons transmettre les variables. Nom. Notre deuxième variable est H, et notre troisième variable est élevée. Comme je vous l'ai dit, self signifie l'objet, et c'est une méthode de construction C'est sa veine qui l'utilise pour construire l'objet. Maintenant, dans son constructeur, je vais créer une variable d' instance en utilisant ces arguments. Laisse-moi te montrer. Ici, je vais taper le nom du point automatique. Le nom de notre variable est name, assignez-le avec notre argument, qui est name. N'oubliez pas qu'il s'agit d'une variable et que c'est un nom de paramètre. Vous pouvez utiliser un nom de paramètre différent. Ici, je vais me transmettre le nom de l'étudiant, étudiant H est la taille, la taille de l'étudiant. Nous devons maintenant attribuer ce nom à cette variable Nin Maintenant, je vais créer une autre variable d'instance pour l'étudiant H et la taille de l'étudiant. Je vais taper le point Sil H égal à ish et la hauteur du limon égale à is high Nous pouvons maintenant envoyer des arguments lorsque nous créons l'objet. Ici, je vais passer la hauteur. Hauteur. Le double cours est de 156 centimètres. Pour Smith, je vais dépasser Neil Smith Smith âgé de 23 ans et Smith Heid mesure 170 cm 1 centimètre Maintenant, je veux appeler prin ditalsFunction Mais avant de vouloir ajouter de la hauteur dans notre déclaration de retour, je dois taper et la hauteur se trouve à l'intérieur du point S du cariverss. Si je configure ce fichier, et si j'appelle ajouter un point, imprime les détails et je lance la seconde, comme vous pouvez le voir, faire tourner tous les détails de l'ajout d'un Le nom est Ad, l'âge a 21 et la hauteur est de 156 centimètres De même, si j' appelle cette fonction pour Smith et qu'ils définissent ce fichier, Smith met des points sur les détails. Ensuite, définissez ce fichier et exécutez le score. Vous pouvez maintenant voir que le nom du sprint est le frottis g est 23 et la hauteur est de 170 x 1 centimètre J'utilise le constructeur, alors nous pouvons envoyer des données en argument. Sinon, nous ne pouvons pas envoyer données dans notre classe en tant qu'argument. Il va revenir. Comme vous pouvez le constater, ces arguments sont attribués à la méthode init Ensuite, nous affectons ce paramètre dans cette variable. Pour le nom, nous utilisons la variable name. Pour SH, nous utilisons la variable, et pour une hauteur, nous utilisons une variable de hauteur. Nous pouvons accéder à toutes ces variables dans notre fonction print tal en utilisant L, l point name l.hl point h. Je deviens dingue de ce qui en est toujours Merci d'avoir regardé cette vidéo, restez connectés pour nos deux prochains odio 10. Méthodes de cours en Python: C'est bon de vous revoir, je suis de retour avec un nouveau tutoriel, un programme orienté objet en Python. Dans ce tutoriel, nous allons apprendre ce qu'est la méthode de classe. Dans notre précédent tutoriel, nous allons découvrir à quoi sert le synthé et ce qu'est le constructeur Mais dans ce tutoriel, nous allons découvrir la méthode de classe. Qu'est-ce que la méthode de classe ? En une phrase, une méthode de classe est une méthode liée à une classe plutôt qu'à son objet. Permettez-moi de le simplifier. Mais avant, comme vous pouvez le voir, nous créons deux variables d'instance en utilisant cette classe, ajoutons une et Smed. Pour l'instant, je vais supprimer les lignes inutiles. Je n'en ai pas besoin. Permettez-moi de vous donner un aperçu de la situation pour la démonstration. Supposons que vous souhaitiez modifier une variable de classe. Vous voulez changer le nombre de bleps de dix à 15, si vous voulez changer les variables de classe, comme je vous l'ai dit, vous ne pouvez pas changer de variable de classe depuis l'instance Pour cela, vous devez le modifier depuis cette classe. Et si vous souhaitez la modifier à partir de l'instance, une nouvelle variable d'instance sera créée, mais elle ne pourra pas modifier la variable de classe Supposons qu'à l'intérieur de cette classe, je souhaite créer une fonction et, par le biais de cette fonction, modifier le nombre de bips Je ne veux pas modifier le nombre de feuilles par le biais d'une variable. Je souhaite le modifier à partir d'une fonction. Pour cela, nous devons utiliser la méthode de classe. Et comme je vous l'ai dit, self est nécessaire lorsque nous créons une fonction dans la classe, mais je veux supprimer cette cellule Pour cela, il faut utiliser un décorateur. Je vais donc utiliser ici un décorateur de méthode de classe, la méthode Nick line amortype at the rate class C'est un décorateur. Maintenant, la question est de savoir ce qu'est un décorateur en Python ? En une phrase, un décorateur est un modèle de conception en Python qui permet à un utilisateur d'ajouter de nouvelles fonctionnalités à un objet existant sans modifier sa structure Après avoir appelé ce décorateur, je vais créer la fonction Ici, je vais taper DF et le nom de notre fonction est change leaps Donc, changez de type. Soulignez les sauts. Ensuite, à l'intérieur des robes rondes, cette fois, je ne passe pas L, et je vais appeler un nouveau paramètre, qui est CLS. Maintenant, la question est de savoir ce qu'est le CLS ? CLS signifie que la classe qui inculque cet objet, SM. Sur ce, je vais aborder un autre argument, celui des nouvelles feuilles. Nouvelles feuilles soulignées. Et dans cette fonction, je vais taper class point class dot, nombre de feuilles égal aux nouvelles feuilles Je ne veux rien redire. Cette méthode de classe permet de modifier les sauts par le biais de la variable d'instance Laisse-moi te montrer. Ici, je tiens à dire de nouveaux pas en avant. Je vais taper, ajouter un point, et le nom de notre fonction est change leaps Ici, nous n'avons besoin que d'un seul argument, New sauts, et je vais en définir 35 Si j'imprime le nombre de sauts adv, laissez-moi vous montrer un nombre de sauts en un point Acceptez ce fichier et exécutez ce code, comme vous pouvez le voir, il est écrit 35. Comme vous pouvez le voir, nous modifions la variable de classe en utilisant la méthode de classe. Vous pensez peut-être que cette ligne crée une nouvelle variable d' instance pour cet objet avancé. Non, ça ne l'est pas. Nous pouvons également y accéder avec Smith. Ici, je vais croiser Smith. Chiffres à points Smith. Comme vous pouvez le voir, par défaut, le nombre de congés est de dix, et comme vous pouvez le voir, nous y accédons à partir d'une variable d'instance, Smith. Si je définis ce fichier et que j'exécute ce code, maintenant vous pouvez voir qu'il est également écrit 35, mais ici, vous pouvez voir nous changeons le nombre de congés en utilisant sur une instance, pas sur cette instance Mth, mais cela fonctionne également pour SMT De plus, nous pouvons également y accéder avec le pass de classe II, les cheveux des étudiants, le nombre de points des étudiants, le nombre de sauts, définir ce fichier et exécuter ce code Comme vous pouvez le voir, il est écrit 35, pas dix. Il s'agit de l'utilisation de la méthode de classe. Cela nous permet de changer la classe en utilisant la variable d' instance. Merci d'avoir regardé cette vidéo. Restez à l'affût pour notre prochain tutoriel. 11. Méthodes de cours comme constructeurs alternatifs: C'est bon de vous voir. Encore une fois, je suis de retour avec un nouveau poème orienté objet en Python lié à un tutoriel . Dans notre précédent tutoriel, nous allons découvrir comment créer une méthode de classe. Mais dans ce tutoriel, nous allons apprendre comment utiliser la méthode de classe comme constructeur alternatif Comment créer une instance à l'aide de la méthode de classe. Dans notre précédent tutoriel, nous avons créé une fonction nommée change leaf Si je change de feuille en en ajoutant une, réfléchissez également au nombre de feuilles de Smith. Parce qu'en utilisant cette méthode de classe, nous changeons la variable de classe. Je ne modifie pas la valeur de la variable d'instance. C'est la valeur de la variable de classe de changement. Voyons comment utiliser méthode de classe comme constructeur alternatif Dans un premier temps, dans cette classe, je vais déclarer une méthode de classe. Ajoutez la méthode de classe de lecture. Alors quoi ? Si nous créons un objet par une chaîne, nous n'avons pas besoin de passer de paramètre comme celui-ci. Ici, je vais créer une fonction. W et le nom de notre fonction vient de Star under sco Tia. Cela signifie chaîne. Ensuite, dans les presses rondes, notre premier argument est la classe. Notre argument suivant est une chaîne, je veux passer une chaîne et cette fonction et cette fonction vont convertir cette chaîne en un objet comme Edwin et Smith Je veux dire que je veux créer un constructeur. Permettez-moi de le simplifier davantage. Pour l'instant, dans cette fonction, je vais taper pass, et je veux créer un autre objet. Pour cet objet, je vais prendre Oliver comme nom. Oliver est égal à, et elle est également étudiante. Je vais appeler notre élève. Ensuite, à l'intérieur de la robe ronde, je ne veux passer aucun paramètre Maintenant, je veux passer une chaîne simple. Je ne veux pas passer un paramètre comme celui-ci en utilisant une virgule entre eux. Au début de notre chaîne, je vais passer le nom d'étudiant Oliver. Ensuite, je vais passer H, mais cette fois, je ne vais pas utiliser de virgule Cette fois, je vais utiliser le signe du tableau de bord. Il mesure 24 tirets et mesure 154 centimètres. Donc, en gros, vous pouvez la voir : je passe un seul paramètre sous forme de flux, mais cette fonction va convertir ce paramètre en objet. De plus, cette fonction permettra d' identifier le nom de l' étudiant, son âge et sa taille. Mais le problème est que si je change de constructeur, les deux lignes ne fonctionneront pas correctement, cela n' ajoutera pas l'objet Il va renvoyer une flèche. De plus, il va renvoyer une flèche si je lance ce fichier maintenant. Laisse-moi te montrer. Si je lance ce fichier, comme vous pouvez le voir, c'est une flèche. Ici, vous pouvez voir dans notre message que nous avons besoin d'un argument positionnel, H et is height, car ici nous ne passons qu'un seul paramètre Pour résoudre ce problème, je vais appeler cette fonction. Je vais copier le nom de la fonction depuis STR et après student, je vais utiliser le point de la fonction STR. Maintenant, cette fonction va prendre cet argument sous forme de chaîne. Donc d'abord, dans cette fonction, je vais prendre une variable, et je vais prendre la variable n IM. Élément égal à, et je vais appeler cette chaîne variable point. De plus, je vais appeler le nom de la méthode split. Séparer. Et à l'intérieur du laiton rond, nous devons passer la lettre ou le signe. Ici, je veux séparer cette chaîne de D sinus. C'est pourquoi je passe ce panneau. Cette fonction divise notre chaîne en trois parties, Oliver 24 et 154 centimètres, et renvoie une nouvelle liste Ensuite, je vais renvoyer à CLs CS et à l' objet avec lequel nous travaillons Ensuite, à l'intérieur du laiton rond et ici je veux renvoyer tous les numéros d'articles que nous obtenons de cette corde. Élément de type Hemo au lieu de cela , la presse carrée est le numéro d' index, zéro Comme vous le savez, notre liste commence par un indice zéro. C'est pourquoi notre premier indice est zéro. Ensuite, je vais passer le point 1 et le point 2. C'est dommage, je suis, est-ce que la presse carrée en est une. Je suis une virgule. Réglez les deux carrés en laiton. Maintenant, cela provient de la fonction Tier pour renvoyer ce résultat à cet objet. Lorsque nous créons cette instance de foie en utilisant cette fonction de classe de STR, elle va d'abord envoyer cette chaîne dans cette fonction depuis STR, puis diviser la chaîne en utilisant ce signe. Je crée un total de trois derniers éléments et reviens à nouveau à cette instance via cette classe. Je veux dire que ça va donner le même résultat comme ça. Si j'imprime Oliver, je vais commenter cette ligne d'impression de type moto J'ai dit que le rond était Oliver, Oliver point H. Ensuite configurez ce fichier et exécutez le code dans mon terminal. Comme vous pouvez le voir, c'est écrit le bord 24, et ici vous pouvez voir dans ma chaîne que le bord est 24. Nous créons un constructeur alternatif en utilisant cette fonction à partir de STR, mais ici nous devons utiliser la méthode de classe Ici, nous créons un constructeur alternatif qui prend un argument de chaîne, et il convertit cette chaîne en objet N'oubliez pas qu'ici vous pouvez passer n'importe quel panneau. Si vos données sont divisées par une barre oblique, laissez-moi vous montrer une barre oblique, et vous devez également modifier la barre oblique Si je définis ce fichier et que j'exécute ce code, comme vous pouvez le voir, cela fonctionne également. J'espère que vous pouvez maintenant comprendre à quoi sert la méthode de classe et comment nous pouvons créer un constructeur alternatif en utilisant la méthode de classe C'est tout pour ce tutoriel. Dans notre prochain tutoriel, nous allons apprendre ce qu'est la méthode statique. Merci d'avoir regardé cette vidéo indiquant. 12. Méthodes statiques en Python: C'est bon de vous voir, les gars. Encore une fois, je suis de retour avec le nouveau programme orienté objet Python lié au didacticiel . Dans ce tutoriel, nous allons apprendre ce qu'est la méthode statique. Dans notre précédent tutoriel, nous avons appris comment utiliser méthode de classe comme constructeur alternatif Supposons maintenant que je veuille une méthode simple, pas pour une variable d'instance, pas pour une variable de classe. Je ne veux pas excéder la variable d'instance , sinon la variable de classe. Je veux juste mettre une méthode dans une classe. Supposons que vous vouliez imprimer quelque chose par la suite. Pour cela, vous pouvez utiliser une méthode statique. Laisse-moi te montrer. Semblable à la méthode de classe, nous devons utiliser un décorateur pour créer une méthode statique Ici, nous devons taper selon la méthode statique du débit. Et dans cette méthode, je veux imprimer une déclaration. Ici, je vais créer une fonction. Dave, et le nom de notre fonction est pint hello. Une pinte, un soulignement, bonjour. Ensuite, vous avez parlé des robes rondes, je vais passer un flux de paramètres. Ensuite, insérez cette fonction, et là je vais taper le code PIN J'ai dit les adresses rondes, j'ai dit les codes doubles, bonjour et bienvenue Ensuite, je vais utiliser concave et signer et je vais passer le flux de paramètres Je veux donc créer une fonction qui ne prendra pas self comme argument, sinon la classe comme argument. Il n'est pas directement lié à cet objet. Maintenant, la question est de savoir pourquoi nous l'avons mis dans une classe ? Pourquoi devons-nous utiliser une méthode statique ? Parce que je souhaite exécuter cette fonction uniquement pour cet objet. C'est pourquoi nous devons créer une méthode statique. Je veux juste l'exécuter pour Student Object. Appelons la fonction en utilisant l'instance. Ici, je vais appeler cette fonction print Smit dot print hello, print hello Nous devons également faire valoir un argument. Au lieu du double plat, je vais laisser passer l'odeur. Définissons donc le fichier et exécutons la fonction. Comme vous pouvez le voir sur mon terminal, il imprime. Bonjour, bienvenue Smith. Nous devons prévoir un espace après l'accueil. Ensuite, vous voulez définir ce fichier, et encore une fois, je le lance, comme vous pouvez le voir, bonjour et bienvenue Smith. Mais le quotien est écrit nun car nous ne renvoyons rien dans cette fonction C'est pourquoi c'est écrit « nonne ». Si je tape le mot clé return, return , et ici, je vais taper dans le double code haut. Si je définis ce fichier et que je l'exécute, comme vous pouvez le constater, les nerds reviennent haut Vous pouvez transmettre n'importe quoi, n'importe quelle valeur, sinon n'importe quelle variable que vous souhaitez renvoyer, et je ne veux rien renvoyer dans notre méthode statique. C'est pourquoi je vais supprimer cette ligne. Je vais configurer ce fichier. Pour augmenter l'efficacité, nous devons utiliser une méthode statique. Sinon, par défaut, il prend l comme paramètre. S'il n'y a pas d'utilisation de SL, dans ce cas, vous pouvez utiliser la méthode statique. Et n'oubliez pas que vous pouvez également appeler cette fonction avec la classe stupid. J'espère que Nerds vous explique l'utilisation de la méthode statique Merci donc d' avoir regardé cette vidéo. Restez à l'affût de notre prochain studio. 13. Qu'est-ce que l'abstraction et l'encapsulation: Bonjour les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un nouveau tutoriel la programmation orientée objet en Python. Dans ce tutoriel, nous allons apprendre ce que sont l'abstraction et l' encapsulation. Nous en avons déjà entendu parler dans notre section d'introduction. Récapitulons donc la vidéo et essayons de comprendre ce qu'est l'abstraction L'abstraction est le concept de programmation orientée objet qui ne montre que les attributs essentiels et affiche les informations inutiles. Dans un langage simple, indiquant ce qui est nécessaire et la hauteur, ce qui n'est pas nécessaire. Il ne se soucie de rien d'autre. J'ai juste besoin des données nécessaires. Par exemple, nous avons un ordinateur fabriqué avec une souris, un clavier, un écran et un ski. Si vous voulez déplacer le curseur, vous devez déplacer la bouche. Mais je ne veux pas savoir comment la souris a été fabriquée et ce qu'il y a dans sa bouche. Ce n'est pas nécessaire pour moi. Mon but est juste de bouger la bouche. Je ne veux pas savoir ce qui se passe en arrière-plan. Ce qui se trouve à l'intérieur de la souris nous est caché En termes de programmation orientée objet, nous l'appelons abstruction Nous ne voulons pas montrer d' informations inutiles à l'utilisateur. Essayons de le comprendre d'une manière plus simple. Supposons que ce soit vous et que vous demandiez de l'argent à votre père, qu'il soit de la responsabilité de votre père d'apporter l'argent, et que vous n'ayez pas besoin de savoir d'où votre père l'a obtenu. Tu crées simplement la demande et ton père y pourvoit. Ce concept de dissimulation est appelé abstraction. Donc, en termes simples, l'abstraction signifie diviser des parties. Vous pouvez voir ici que nous créons une classe réservée aux étudiants. De même, nous pouvons également créer des cours pour les enseignants. Supposons que si vous souhaitez définir une école, composée d'un enseignant, d'un étudiant et d'un membre du personnel. Nous pouvons donc créer un enseignant, un étudiant et un membre du personnel de classe particuliers , mais je ne veux pas connaître tous les noms des étudiants , des professeurs et des membres du personnel Je veux juste des données spécifiques à un segment. Je ne veux pas savoir comment le professeur enseigne à ses élèves. Je veux juste des données sur les enseignants. La confusion est donc que l'étudiant n'est qu'une couche d'abstraction. De même, les professeurs et Stub aussi. Je crée une classe d'étudiants, vous créez une classe de professeur et quelqu'un crée une classe souche, et cela ne m'intéresse pas Ce que vous écrivez dans la classe du professeur. Je veux juste utiliser ce cours. C'est ce qu'on appelle l'abstraction. Parlons maintenant de l'encapsulation. Qu'est-ce que l'encapsulation ? L'encapsulation est définie comme le regroupement des données dans une seule unité Qu'est-ce que cela signifie ? En gros, en utilisant l' encapsulation, nous pouvons encapsuler Voyons un exemple et essayons de comprendre quand l' encapsulation est pratique Supposons que nous créions au total trois variables, A, B et C. Après avoir créé la variable, nous tapons des milliers de lignes de code. Après mille lignes de code, par erreur, je crée le même nom de variable. Comme vous pouvez le voir, B. Cela signifie que la variable V existe déjà dans notre document. Cela va créer un problème. Certains langages de programmation ne le permettent pas. Et certains langages de programmation obtiennent la variable et l' attribuent d'une nouvelle manière Pour résoudre ce problème, nous avons donc utilisé l'encapsulation. À l'aide de l'encapsulation, nous encapsulons ces données. Après avoir encapsulé ces données et après les avoir encapsulées, nous les rendons également Après l'avoir rendu privé, personne ne peut y accéder à l'extérieur sauf si vous y êtes autorisé. Cela signifie que si vous déclarez la variable en dehors de cette capsule, elle agira comme une variable différente et le nom de la variable nouveau la variable en dehors de cette capsule, elle agira comme une variable différente et le nom de la variable ne sera plus en conflit avec le nom de la variable. Cela signifie que ces variables ne fonctionnent que pour une classe particulière. Et vous pouvez également utiliser le même nom de variable dans une classe différente. Ensuite, vous pouvez créer un autre nom de variable en utilisant B. En gros, je veux dire que nous pouvons contrôler le conflit de noms en utilisant l'encapsulation. Ici, vous pouvez voir que nous créons un nombre variable de tours et je souhaite utiliser cette variable uniquement pour les étudiants, pas pour les fonctionnalités. Je ne veux pas créer cette variable de manière globale. Je veux juste y accéder via ce cours uniquement. De même, je souhaite exécuter la fonction d'impression des détails uniquement pour les étudiants, pas pour les enseignants et les timbres. Nous devons donc encapsuler ces données. J'espère que c'est clair pour toi maintenant. Merci d'avoir regardé cette vidéo, restez connectés pour la prochaine. 14. Introduction L'héritage en Python: Bon retour, tout le monde. Encore une fois, je suis de retour avec un nouveau tutoriel la programmation orientée objet en Python. Et dans ce tutoriel, nous allons apprendre ce qu'est l'héritage. Dans notre précédent tutoriel, nous allons en apprendre davantage sur l'abstruction et l'encapsulation Mais dans ce tutoriel, nous allons apprendre l'héritage. Maintenant, la question est de savoir ce qu'est l'héritage, un mot simple, hériter signifie hériter de quelque chose de génération en génération Je tiens à dire que le fait de transmettre quelque chose de génération en génération s' appelle héritage. Éclaircissons le concept. L'héritage nous permet de définir une classe qui hérite de toutes les méthodes et propriétés d'une autre classe Essayons maintenant de le comprendre en termes plus simples avec une image. Supposons que ce soit votre grand-père et votre grand-père ait possédé beaucoup de terres dans le passé. À un terme orienté objet, nous pouvons appeler votre grand-père Gen de classe parentale, puis il décider de donner toutes les terres à son fils. Quand est ton père ? Je veux dire que votre père a obtenu des biens de votre grand-père, mais que votre père lui-même possédait de nombreuses propriétés. Ton père a acheté de nombreuses actions. Votre père possède donc maintenant deux types de propriétés, il peut donc vendre sa terre et ses propres actions s'il le souhaite. Mais votre père a décidé de transférer ses biens ancestraux et ses actions à votre nom. Mais vous avez vous-même créé de nombreuses propriétés. Vous avez beaucoup de cryptomonnaies. Donc, si vous le souhaitez, vous pouvez utiliser votre propre cryptomonnaie. Sinon, ce sont les actions de votre père, sinon c'est votre grand-père qui gagne. Mais ton grand-père ne peut pas utiliser la part de ton père. De plus, votre père ne peut pas utiliser vos cryptomonnaies, mais votre père peut utiliser les terres de son père, mais votre grand-père n' est pas autorisé à utiliser les actions de son fils. De même, votre père ne peut pas utiliser vos cryptomonnaies, mais vous devez y accéder à toutes. Vous pouvez utiliser des terres, des actions et vous pouvez également utiliser vos propres crypto-monnaies. Fondamentalement, nous contrôlons la répétabilité en utilisant l'héritage. Comprenons-le maintenant avec un terme orienté objet. Supposons que la terre de votre grand-père soit une fonction et que la part de votre père soit également une fonction. Il n'est pas nécessaire de saisir les deux fonctions dans la classe de votre enfant. Vous pouvez y accéder quand vous le souhaitez, mais votre grand-père et votre père ne peuvent pas accéder à vos propriétés. J'espère que vous comprenez maintenant ce qu'est l'héritage. J'ai essayé de vous expliquer de manière très simple. Vous pouvez donc voir, encore une fois, que je suis de retour dans mon coordinateur Visual Studio, et j'ouvre le point principal de mon fichier Pi. Ici, vous pouvez voir que nous créons une classe nommée student, qui contient une méthode de classe, méthode statique, un constructeur et une fonction Vous pouvez également voir que nous créons un total de trois instances en utilisant cette classe Advanced meth et Oliver Supposons qu'ils soient tous étudiants de votre école, mais que certains d'entre eux adorent les programmes. Je veux créer une classe nommée programmeur. Ici, je vais taper class programmer. Programmeur. Le programmeur est également étudiant, mais je souhaite ajouter quelques propriétés supplémentaires à la classe de programmeur. Je voudrais ajouter le langage de programmation qu'ils connaissent. Avec cela, je veux accéder à toutes les propriétés, classe, méthodes statiques, fonctions de la classe des étudiants. Pour cela, nous n'avons que deux méthodes. Nous pouvons copier la section entière, la coller et la modifier dans notre classe de programmeur. Ce processus n'a aucun sens car nous ne suivons alors pas le concept de réutilisabilité du code Pour résoudre ce problème, nous devons hériter de cette classe avec cette classe Je veux hériter d'une classe de programmeur avec une classe d'étudiant ici, je vais effectuer un héritage à un seul niveau Simplement, une classe hérite d' une autre classe. À l'intérieur de la pause ronde, je vais taper le nom de notre classe étudiant Ensuite, dans le niveau d' indentation pour le moment, je vais taper pass Maintenant, la classe de programmeur peut accéder à toutes les propriétés de la classe étudiante, ainsi qu'à sa méthode de classe de fonctions, et maintenant je vais créer une instance en utilisant la classe de programmeur. Laisse-moi me montrer. Je vais donc créer une variable, et le nom de notre variable est Rohan Rohan, c'est pareil, mais cette fois, je vais appeler programmeur class, programmeur Et à l'intérieur de la cavité ronde, nous devons passer un total de trois paramètres Nom de l'étudiant, âge et taille de l'étudiant. C'est un élément si simple pour transmettre le nom de l' étudiant, Rohan. Il a 21 ans et sa taille est de 170 centimètres. Pour l'instant, je vais supprimer ces lignes. Nous n'en avons pas besoin. Ensuite, je vais créer une méthode, puis je vais ajouter une méthode dans notre classe de programmeur, qui va imprimer tous les détails du programmeur. Je vais donc taper Dave et nom de notre méthode est print prog mean print programmer details Print, UndiscoePG puis à l'intérieur des roundresses, par défaut, il prend self comme argument Ici, il faut donc se dépasser. Ensuite, dans cette fonction, je souhaite renvoyer la même fonction de ligne ou d'impression des détails. Je vais copier cette ligne, et je vais la coller ici. Maintenant, la classe de programmeur peut accéder aux branches de méthode La classe d' étudiants a sa propre branche d'impression de méthode. Dans cette déclaration de retour, je vais taper les noms des programmeurs, programmeur. Le nom du programmeur est silbdtnsldt g et sl point h. Maintenant, et sl point h. Maintenant je veux imprimer cette fonction Laisse-moi te montrer. Ici, je vais taper print, imprimer à l'intérieur des robes rondes Je souhaite imprimer les détails de Ran. Ici, je vais taper Rohan. Rohan, point et moi voulons lancer Print Pg. Vous pouvez également voir tous les noms de fonctions que nous pouvons exécuter dans notre instance. Imprimer bonjour, changer de congé, de er, un numéro bip. Ils proviennent tous de la classe des étudiants, pas de la classe de programmeur, mais ici je veux exécuter la fonction Print Prog Donc, si je dirige cette école, comme vous pouvez le voir sur mon terminal, le programmateur d'impression est Ran, 21, et la hauteur est de 17 centimètres C'est l'exemple d' un niveau unique dans Hitans. Voici donc l'exemple des rehaussements à un seul niveau. Mais maintenant je veux lancer un autre programme, Rohan dot print Details Cette méthode provient de la classe des étudiants, et si je lance ce boum, comme vous pouvez le voir, elle fonctionne avec succès Il s'appelle Rohan, il a 21 ans et mesure 170 centimètres Rohan peut donc accéder à sa propre propriété de classe, également à une propriété de classe étudiante Mais si j'essaie d' imprimer la fonction d'accessoire d'impression pour Oliver, voyons voir Je vais dupliquer cette ligne et commenter la précédente. Ici, je vais croiser Oliver. Oliver point, et le nom de notre fonction est Print prorogue. Imprimer, souligner Pg. Si je définis ce fichier et que j'exécute ce code, comme vous pouvez le voir, c'est une erreur écrite. Son objet étudiant écrit n'a pas d'attribut, de programme d'impression ou d' instance créé avec la classe des étudiants C'est pourquoi il ne peut accéder qu'à ses propres propriétés et méthodes, et non propriétés et méthodes du programmeur. Mais Rohan, qui a créé avec la classe de programmeur et notre classe de programmeur, hérite de la classe d'étudiant C'est pourquoi il peut également accéder à toutes les propriétés de la toutes les propriétés de la classe étudiante et de la classe du programmeur. C'est tout pour ce tutoriel. Dans notre prochain tutoriel, nous allons en apprendre davantage à ce sujet. Merci d'avoir regardé cette vidéo, Sy tune. 15. Héritage unique avec builder: Bonjour, les gars, c'est bon de vous voir. Encore une fois, je suis de retour avec un nouveau tutoriel. En ajoutant ce didacticiel, nous allons apprendre l'héritage à un seul niveau. Dans notre précédent tutoriel, vous pouvez voir comment nous pouvons hériter étudiant avec une classe de programmeur C'est pourquoi la classe de programmeur peut exister sur les méthodes et les variables de la classe étudiante. Maintenant, je veux ajouter une nouvelle méthode dans notre classe de programmeur. De plus, je veux ajouter un nouveau constructeur à notre classe de programmeur, je vais créer un constructeur innit dans la classe de programmateur dans la Davcondasco : Souligner par la coercition et souligner. Ensuite, dans les versets ronds, je vais passer S. Ensuite, dans le constructeur innit, pour l'instant, je vais taper Je souhaite créer un constructeur similaire à celui de studen. Nous devons passer l'argument C dans notre fonction d'initialisation. Ici, je vais utiliser les mêmes paramètres. Le nom est H et hauteur. Copiez le nom des paramètres et collez-le après SLP. Avec cela, je veux passer un paramètre supplémentaire, qui est la langue. Ici, je vais taper la langue. Avec le nom, l'âge et la taille des étudiants , je veux étudier les langues. Je veux dire les langages de programmation, ils fonctionnent. Ensuite, je veux imprimer le nom, l'âge, la taille et le langage de programmation. Pour cela, nous pouvons copier le même code depuis le constructeur innit Mais nous pouvons également utiliser Super. Super, je veux utiliser le constructeur de superclasse. En utilisant Super, nous pouvons appeler n'importe quelle fonction ou constructeur depuis superclass et nous allons en apprendre davantage à ce sujet dans notre prochain tutoriel, pas dans ce Donc ici, je vais coller ces mêmes variables. Le nom du point de sol est nommé silt HSh. La hauteur du limon est la hauteur. Avec cela, nous devons prendre une variable pour la langue. Laisse-moi te montrer. Il saisit le point « Langue égale à la langue ». Changeons le nom du paramètre, langue signifie langue de l'étudiant. Sinon, cela peut vous embrouiller. Langue des points de l'étudiant, passez à la langue. Et lorsque je crée une instance en utilisant cette classe, nous devons passer un autre argument, le langage de programmation. Ici, je veux transmettre Python. instance de ligne a donc été créée avec la classe de programmation et possède son propre constructeur. Mais dans notre tutoriel Preths, nous utilisons le constructeur de classe Student pour créer une instance de ligne Mais ici, nous utilisons le constructeur de classe de programmeur. Je vais maintenant appeler la fonction OhundtpnPC, le type Shan, l' impression, le Rohan, la fonction point Avant de définir ce fichier et d'exécuter cette portée, je vais ajouter une nouvelle phrase à la fonction Pin Broke. Ici, je vais taper A si un A est un A. Au lieu de cela, la voiture résiste, je vais passer le programmateur de langage SL point. Maintenant, la fonction d'accessoire d'impression va imprimer le nom de l'étudiant , son âge, sa taille et le langage de programmation avec lequel il travaille Définissons le fichier et exécutons le. Comme vous pouvez le constater, cela a parfaitement fonctionné. Le nom du programmeur est Rohan, 21 ans, taille est de 170 centimètres et il est programmeur Python Ici, nous apprenons qu'après avoir hérité d'une autre classe, nous pouvons utiliser le constructeur Superglass, sinon nous pouvons créer son propre constructeur et également ajouter de nouvelles propriétés, valeurs et paramètres Comme je vous l'ai dit, ce n'est pas la bonne méthode pour créer un constructeur après avoir hérité de cette classe Nous devons utiliser le constructeur de superclasses et nous allons en apprendre davantage à ce sujet dans notre prochain tutoriel, pas dans ce Merci d'avoir regardé cette vidéo, c'est tout pour ce tutoriel. Dans notre prochain tutoriel, nous allons apprendre à avoir plusieurs héritiers. Restez à l'affût pour notre prochain tutoriel. 16. Héritage multiple: Bonjour, les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à la programmation orientée objet en Python. Dans ce tutoriel, nous allons apprendre ce qu'est l'héritage multiple. Dans notre tutoriel de progression, nous allons découvrir ce qu'est héritage unique et comment nous pouvons l'utiliser Commençons par l'aspect pratique et voyons ce qu'est l'héritage multiple. Comme vous pouvez le voir, je crée déjà un fichier Python, le fichier point principal, et maintenant je vais créer classe 2 avec la même fonction et la même propriété. Notre nom de première classe est grand-père. Ici, je vais taper class keyword class. Ensuite, notre nom de classe est grand-père. Soulignez davantage. Ensuite, dans cette classe, je vais d'abord créer une variable et le nom de notre variable est wealth. Ici, je vais lier la richesse. Richesse. Mon grand-père est une personne âgée et il possédait des biens immobiliers. Ici, je veux sentir 50 000$. Et maintenant, nous devons créer un constructeur pour créer une variable d' instance Ici, je vais taper le co undersco undersco. Alors le premier paramètre de RoundResso est self. En tant que paramètre par défaut, nous devons transmettre sl. Sur ce, je vais prendre d'autres paramètres. Notre premier paramètre est le nom. Nom, alors je vais prendre Il, puis probité. Notre dernier argument est celui de l'identité. Maintenant, dans le constructeur d'initialisation, nous devons initialiser le paramètre avec une variable Le type Heim, le point L ou le nom de la variable sont nommés même manière que le nom de notre paramètre, qui est également un nom. Ensuite, je vais dupliquer cette ligne à trois t et elle pour passer le limon H. De plus, le nom de notre paramètre est H. Self point bt Et le nom de notre paramètre est également propriété. Enfin, notre dernier paramètre est l'identité, l'identité par points personnels. Et le nom de notre paramètre est identité. Ainsi, lorsque nous créons une instance à l'aide de cette classe, nous devons passer aux quatre roues le nom, l'âge, la propriété et l'identité. Je vais maintenant créer une méthode capable d'imprimer les détails de l'instance. Ici, je vais taper B BF et le nom de notre fonction est print details. Ensuite, à l'intérieur de la résine ronde, nous devons passer un paramètre Self est un paramètre par défaut. Comme je vous l'ai dit plus tôt, pensez l'instance, créez avec cette classe. Dans cette fonction, je vais renvoyer une instruction, return. Ici, je vais utiliser Estrem puis dans les codes doubles, le nom du thème est dans les colonnes, le nom du point automatique Ensuite, je vais taper He dans le carsis silbdt H pour les propriétés, je vais taper J'ai la propriété Slpdt de la voiture Ensuite, nous devons imprimer l'identité. Ici, je suis monotype et IU est sur le point d'identité serbe de Colverss. Il a créé avec succès une fonction capable d'imprimer les détails des installations, créée avec la classe Grandfather Maintenant, je vais créer un cours pour une autre génération, pour mon père. Je vais sélectionner cette section et la dupliquer. Ici, je vais changer le nom de classe uniquement de plus en plus utilisé pour investir dans des actions. C'est pourquoi il gagnait plus d' argent que son grand-père. Ici, je vais passer 100 000$. Hé, j'ai fait une stupide erreur de frappe et je vais la corriger. Je suis. Ensuite, je vais créer une autre classe pour Sun. Ici, je vais taper class, class, sun. Ensuite, dans la classe Sun, je vais utiliser la même fonction de détails des épingles. Je copie cette fonction et je vais la coller ici. Je vais également très bien initialiser notre. Ici, je vais taper, eh bien, richesse égale à seulement 25 000$ Il est jeune et investit dans les cryptomonnaies. C'est pourquoi il a réussi à gagner autant de richesses jusqu'à présent et nous devons également intégrer cette méthode à cette étiquette d' indentation Maintenant c'est parfait. Ici, vous pouvez voir que nous créons trois classes différentes pour différentes générations pour le grand-père, pour le père et le fils Vous pouvez également voir que nous attribuons une variable de classe similaire à toutes les classes, mais nous utilisons une volonté différente maintenant pour certaines classes Je vais modifier la déclaration régionale dans Little V. Ici, je vais changer la propriété d'identité, identité du point sel, et je supprime cette propriété ici. Je vais taper, je suis votre fils. Comme vous pouvez le voir, nous n'avons aucun constructeur dans la classe sun Nous avons un constructeur dans la classe paternelle et dans la classe grand-père C'est pourquoi nous ne pouvons pas utiliser fonction prétoriale et les propriétés de notre classe solaire Pour cela, nous devons hériter de classe Sun avec n'importe quelle autre classe Nous pouvons hériter de la classe Sun avec la classe grand-père et de la classe paternelle Donc d'abord, je vais hériter de la classe paternelle de Gen. Grand-père. Avec ça aussi, je vais hériter de la classe paternelle. Plus loin. Vous pouvez voir ici que nous utilisons plusieurs héritiers dans la classe Sun. Tout d'abord, nous héritons de la classe des grands-parents , puis nous héritons de la classe suivante. Ensuite, je vais créer une instance en utilisant toute cette classe. Laisse-moi te montrer. Je vais maintenant créer trois variables d' instance en utilisant ces trois classes. Dans un premier temps, je vais créer une variable d'instance en utilisant la classe de grand-père. Ici, je vais taper un nom de variable et le nom de notre variable est James. James est égal à, et je vais créer cette instance en utilisant cette classe grandfather. Ici, je vais taper grand-père. Grand plus loin. Ensuite, à l'intérieur des presses rondes , vous devez passer un total de quatre arguments, nom, l'âge, le type de propriété et la relation. Je veux dire identité. Donc d'abord, à l'intérieur du double cos, je vais dépasser James. Puis coma, le grand-père s' appelle James, il a 94 ans et il est propriétaire d' un bien C'est pourquoi je vais taper propriété de type immobilier. Puis vient l'identité. Relation avec les cours de soleil, il est le grand-père du soleil. Ici, je vais taper grand-père. Nous avons réussi à créer une instance l'aide de la classe grandfather. Je vais maintenant créer une instance en utilisant une autre classe. Ici, je vais dupliquer cette ligne et je vais supprimer James. Ici, je vais taper Robert. Robert. Nous devons également changer le nom. Robert. Ensuite, je vais changer l'âge de 60 ans, et il investit beaucoup d' argent en bourse. C'est pourquoi son type de propriété est celui des actions. Ourlet pour retirer les stocks de type State et Heim. Et la relation avec Sunlass est paternelle. Ici, je vais continuer à taper. Avec cela, nous devons également changer le nom de la classe. Comme je vous l'ai dit, je vais créer cette instance en utilisant la classe father, pas la classe Gan frother, je vais supprimer Gan father Si vous remarquez, vous pouvez voir que nous n'avons aucun constructeur dans la classe Sun Nous avons un constructeur dans la classe père et nous avons également un constructeur dans la classe Ganfather En même temps, nous en héritons à différentes classes. C'est pourquoi il a été appelé héritage multiple. Créons une instance en utilisant Sunclass et le nom de famille est Michael Michael a été créé avec Sun Class, Sun. Ensuite, à l'intérieur des robes rondes, encore une fois, je vais taper Michael. C'est un jeune homme, il a 26 ans et il est issu de la nouvelle génération. C'est pourquoi il investit tout son argent dans les cryptomonnaies. Crypto de type Hemo. Ensuite, nous devons transmettre l'identité et l'identité est le soleil. Je vais maintenant vous expliquer comment fonctionnent les héritages multiples Je vais imprimer les détails de Michael. Il imprime à l'intérieur des robes rondes, Imtype Michael. Détails de l'imprimé Michael Dot. Pink Gettles. Maintenant, la question est la suivante : si j'exécute ce code, quelle fonction de détails d'impression il va imprimer ? Comme vous pouvez le constater, nous avons une fonction d'impression détaillée, tout ce cours, qu'il s'agisse de lunettes de soleil, de lunettes lunettes de père ou de grand-père Quelle déclaration va être renvoyée ? Si la fonction est disponible dans sa propre classe, elle renverra cette instruction. Imprimons-le. Comme vous pouvez le voir sur mon terminal, le nom d'impression est Michael, 26 ans, j'ai du PPT et je suis votre fils. Il a écrit cette déclaration. De même, si vous essayez d'imprimer le patrimoine de Michael, donc pour dupliquer cette ligne et commenter la ligne précédente, je vais bien taper Michael point. Dans ce cas, ça va rapporter ce puits, 25 000. Mais que s'est-il passé si je commente la volonté de Sun, commentons cette richesse. Comme vous pouvez le constater, nous distinguons le patrimoine de Sun Class. Vous pouvez maintenant voir que nous avons une propriété patrimoniale dans notre classe paternelle et dans notre classe Genfather Maintenant, quelle propriété va être imprimée ? Il va imprimer la propriété GEnftherPlus à cause de la commande, car nous héritons d'abord de Gen father plus, puis nous Exécutons donc le code et voyons ce qui s'est passé. Si j'exécute ce code, comme vous pouvez le voir, il en imprime 50 000, et c'est une richesse de Genfather plus de 50 000. Mais si je commente également cette richesse, je commente Genfather plus wealth , puis je définis ce fichier et j'exécute ce code Vous pouvez maintenant le voir imprimer 100 000 exemplaires. Maintenant, c'est Print Father Plus Well. La conclusion est que Sun Plus peut être la propriété du père, également la propriété de Genfather Ainsi, après avoir détruit ses propres biens, il peut dépasser les biens de son père, et après avoir détruit les biens de son grand-père, il peut dépasser les biens de son père Si vous remarquez, vous pouvez voir qu'il n'y a aucune illusion entre la classe père et la classe Genfather, et la classe créée avec un constructeur et une fonction prendids distincts fonctionnent toutes deux constructeur et une fonction prendids distincts Et vous pouvez également voir que nous n'avons aucun constructeur dans notre classe Sun Maintenant, la question est de savoir quel constructeur il va utiliser pour créer l'instance sun Si le constructeur est disponible dans la classe sun, il utilisera son propre constructeur comme variable well Mais si le constructeur n'est pas disponible dans la classe sun, il le trouvera dans la classe grandfather Si le constructeur est disponible dans la classe Genfather, il créera l'instance à l'aide de ce Sinon, il recherchera le constructeur dans une classe ultérieure. Répétons encore une fois. Au début, il va rechercher le constructeur dans sa propre classe Mais si le constructeur n' est pas disponible, il recherchera le constructeur dans la Genfather car il hérite d'abord de la classe père Gen et le constructeur n'est pas disponible dans la classe grand-père, puis il recherchera le constructeur dans une autre le C'est l'avantage d' utiliser plusieurs héritiers. Ici, nous héritons de plus d'une classe. C'est pourquoi nous l'appelons « héritiers multiples ». J'espère qu'il n'y a rien de plus clair quant au visionnage de cette vidéo, restez à l'affût de notre prochain studio 17. Héritage multiniveaux en Python: Salut, les gars, c'est bon de vous revoir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à la programmation orientée objet en Python. Dans notre précédent tutoriel, nous avons découvert ce que sont les héritages multiples Comme vous pouvez le voir sur votre écran, nous ouvrons notre fichier précédent, et dans notre précédent tutoriel, nous apprenons comment hériter plusieurs classes avec une seule classe, que nous appelons héritages multiples Mais aujourd'hui, dans ce tutoriel, nous allons apprendre ce que sont les héritages à plusieurs niveaux Commençons. Dans un premier temps, je vais supprimer le constructeur init de la classe père Je supprime simplement le constructeur d'ici, puis je vais hériter de la classe father avec la classe Genfather Pour cela, ici je vais utiliser bretelles rondes et ici je vais transmettre le nom de notre classe Grandfather Grandfather Maintenant, je vais hériter de notre classe fils avec la classe paternelle uniquement Je vais supprimer la classe Genfather. Maintenant, la conclusion est que la classe paternelle peut exister avec toutes les propriétés de la classe Grandfather. Dans les cas d'héritiers multiples, la classe paternelle ne peut pas utiliser les propriétés de la classe Genfather et leurs mathématiques Mais dans les héritages à plusieurs niveaux, la classe paternelle peut exister dans les propriétés Genfather Plus De même, la classe Son peut exister comme propriété de la classe père. En outre, il peut être la propriété de la classe des grands-pères. Encore une fois, Son peut avoir un excédent sur les biens de la catégorie, ceux de sa catégorie paternelle et ceux de son grand-père, ceux de son père et ceux de son grand-père. Père et fils, les deux classes utiliseront le constructeur de classe Genfather Parce que maintenant, ils n'ont pas leur propre structure de coûts. Pour le prouver, appelons la fonction Prin Details depuis une autre classe Ici, je vais taper Robert point prin Details. Si je définis ce fichier et que j'exécute ce code dans mon terminal, comme vous pouvez le voir, c'est imprimé. m'appelle Robert, j'ai 60 ans, j'ai des actions et je suis ton père. Comment est-il possible de créer une variable d' instance de la classe père sans constructeur ? Parce que la classe paternelle a de la hauteur avec la classe des grands-pères. De même, si j'appelle Print Detail Method of Sun Class, laissez-moi vous montrer quelqu'un qui peut lire ce terminal, et ici je vais associer Michael. Michael Dot Print Details configure ce fichier et publie la partition. Maintenant, vous pouvez le voir. Son nom d'impression est Michael, 26 ans. J'ai de la cryptomonnaie et je suis ton fils. De plus, vous pouvez voir que nous n' avons pas de constructeur dans la classe solaire, mais notre classe solaire en hauteur avec la classe paternelle et notre classe paternelle en hauteur avec la classe grand-père Ainsi, le père et le fils peuvent tous deux utiliser le constructeur de classe Grandfather Dans notre tutoriel de préface, classe paternelle ne peut pas bien exister dans la classe grand-père Mais dans ce tutoriel, le père peut dépasser sa propre fortune. De plus, il peut bien exister dans la classe des grands-pères. De même, un fils peut exister selon son testament de classe paternelle, tout comme sa classe de grand-père, mais un grand-père ne peut pas exister richesse de classe paternelle et un fils plus W. Laissez-moi vous le prouver. Ici, je vais commenter cette ligne, et je vais l'imprimer. À l'intérieur de la presse ronde se trouve James point W. Si je définis ce fichier et que j'exécute ce code dans mon terminal, comme vous pouvez le voir, il est écrit 50 000. Mais si je découvre la richesse de Grandfather Glass, je vais le commenter , puis configurer ce fichier et exécuter ce code. Maintenant, vous pouvez voir que c'est écrit zéro parce que la classe des grands-parents ne peut pas exister dans la propriété vitrée père-fils. Mais si je ne le commente pas, permettez-moi de vous montrer et appeler Father Glass la même variable de richesse Ici, je vais taper Robert. Et configurez ce fichier, maintenant vous pouvez voir qu'il a écrit son propre testament. Mais si je commente le w, puis que je configure ce fichier et que je lance ce se, vous pouvez maintenant voir qu'il peut accéder à son père et à son testament. Mais encore une fois, je suis en train de commenter Grandfather class will , puis de configurer ce fichier et de gérer l'école. Maintenant, vous pouvez voir qu'il s'agit d'une erreur écrite, parce que grand-père et père de la classe ne peuvent pas accéder à la probité de Songl, mais Son peut accéder à propriété de son père et à celle de son grand-père Laisse-moi te montrer. Si je décommente à nouveau cette ligne, je vais taper Michael Michael Dot Wealth. Si je définis ce fichier et que j'exécute ce code, vous pouvez maintenant le voir renvoyer 25 000. Mais si je commente le patrimoine immobilier, la variable de richesse selon la classe des fils, également selon le père Glass et que je place ce fichier, vous pouvez voir maintenant que si j'exécute ce code, il renvoie 50 000. Après avoir démoli ses propres biens et ceux de son père, il peut accéder à la propriété de son grand-père Cette structure est appelée héritage multiniveaux dans un programme orienté objet en Python. Je sais que c'est clair pour toi, qu'est-ce que c'est ? Merci d'avoir regardé cette vidéo, restez connectés pour nos deux prochains trios. 18. Spécificateurs d'accès public, privé et protégé: Bonjour, les gars. C'est bon de te revoir. Encore une fois, je suis de retour avec un nouveau programme orienté objet en Python lié à un tutoriel . Dans ce tutoriel, nous allons apprendre les variables publiques, privées et protégées. Nous allons également apprendre les prescripteurs AXIS. Essayons de comprendre ce que c'est. Essayons de comprendre ce qu'est une variable publique. Supposons que vous accrochiez une affiche à l'extérieur de votre maison pour que tout le monde puisse la voir. Désormais, tout le public, y compris les membres de votre maison, peut accéder aux données des avis. En gros, je tiens à dire que tout le monde peut accéder à ces données. Vous donnez un accès public au tableau d'affichage. Et maintenant, la question qui se pose est la suivante : par quoi est protégé ? Supposons maintenant que vous accrochiez votre notice dans votre salon, seul un membre de votre famille puisse accéder à ce tableau d'affichage. Personne de l'extérieur ne peut y accéder. Les données sont désormais protégées dans votre maison. Mais qu'est-ce qu'une donnée privée ? Supposons simplement que cette fois vous accrochez le tableau d'affichage dans votre chambre, maintenant sans vous, personne ne peut y accéder. C'est ce qu'on appelle le vari privé pour le comprendre plus clairement, étudions la pratique Comme vous pouvez le voir, je suis dans mon éditeur de code Visual Studio et j' ouvre déjà le point principal P. Vous pouvez également voir dans mon fichier que nous avons mis trois classes en hauteur les unes par rapport P. Vous pouvez également voir dans mon fichier aux autres. Vous pouvez voir ici une variable à l'intérieur de la classe Ganfother. Il s'agit d'une variable publique. Tout le monde peut y accéder. Si j'essaie d'accéder à cette variable avec une instance, oui, nous le pouvons. Ici, je vais taper, imprimer. Le déshabillé est-il Michael point Wil. Si je définis ce fichier et que j'exécute ce code, vous pouvez voir que le résultat est d'imprimer 50 000, et maintenant je vais faire en sorte que cette variable le protège. Pour cela, nous devons utiliser le trait de soulignement : Underscoe will. Si j'essaie d'imprimer un soulignement, je dois faire l'éloge du bouton Run. Comme vous pouvez le constater, il fonctionne parfaitement parce que notre classe rencontre le grand-père de la classe de base C'est pourquoi nous pouvons y accéder. Maintenant, je vais faire de la propriété W une propriété privée. Pour cela, nous devons utiliser Double UnderScosie UnderScoundersCoe Si j'essaie de quitter cette variable avec un double trait de soulignement, que je souligne bien, que je place cette pile et que je l'imprime, comme vous pouvez le voir, c'est comme vous pouvez le voir, L'objet Sun n'a aucun attribut, eh bien. Qu'est-ce qui se passe ici ? Python ne transforme pas cette variable en fonction d'elle. Python utilise ici le name angling. Si vous voulez exister dans une variable iv it, dans ce cas, vous devez utiliser le nom de la classe de base avec le signe undersco Laisse-moi te montrer. Ici, je vais associer underscoe et le nom de notre classe de base, grand Si je définis ce fichier et que j'exécute mon noyau, comme vous pouvez le voir, nous pouvons maintenant accéder à notre variable. Vous devez toujours vous rappeler que si vous souhaitez accéder à une variable privée, vous devez utiliser le nom de la classe de base avec UnderScosge C'est tout pour ce tutoriel. Je tiens à l'expliquer aussi simplement que cela. Je ne veux pas compliquer les choses. Merci donc d' avoir regardé cette vidéo. Restez à l'affût pour notre prochaine édition. 19. Introduction du polymorphisme: Bonjour les gars, c'est bon de vous voir. Encore une fois, je suis de retour avec un nouveau tutoriel lié à la programmation orientée objet en Python. Dans ce tutoriel, nous apprenons ce qu'est le polymorphisme. Dans nos précédents tutoriels, nous avons beaucoup appris sur les objets et les classes. Si je définis le polymorphisme en un seul mot, polymorphisme signifie la capacité de prendre ne s'agit ni d'une fonction, ni d'une classe, ni d'un module flétri C'est un concept. Le sens littéral du polymorphisme est la condition d'occurrence sous différentes formes Le polymorphisme est un concept très important en programmation. Il fait référence à l'utilisation d'un seul type d' entité pour représenter différents types dans différents scénarios. C'est un bon exemple de polymorphisme fonctionnel. Si nous utilisons en fonction avec une chaîne, dans ce cas, nous pouvons compter le nombre total de caractères de la chaîne. Mais si nous l'utilisons avec une liste, nous pouvons compter le total des éléments de la liste. De plus, si nous l'utilisons en fonction avec un dictionnaire, dans ce cas, il renvoie nombre de paires clé-valeur dans ce dictionnaire. La conclusion est que nous pouvons l'utiliser en fonction pour compter les caractères, les éléments et les clés. Le comportement changeant de ce programme est appelé polymorphisme Permettez-moi de vous donner un petit exemple. Comme vous pouvez le voir, nous sommes dans l'éditeur de code de mon studio Visor. Vous pouvez le voir, nous avons une classe nommée grand-père et dans cette classe grand-père, nous avons une fonction nommée print details. Comme vous le savez, il s'agit d'un exemple d'héritage à plusieurs niveaux. Mais si vous remarquez que vous pouvez voir que dans chaque classe, ils ont leur propre fonction d'impression des détails. Chaque fois que nous essayons d' imprimer les détails de la fonction à partir de la classe sun, il imprime sa propre fonction , et si elle n'est pas disponible , dans ce cas, il imprimera celle-ci. Parce que la classe fils inspire avec la classe supérieure et la classe paternelle inspire avec la classe Gen Frother Chaque fois que la fonction Détails d'impression remplace la fonction de détail d'impression précédente et imprime une nouvelle déclaration Il s'agit d'un type de polymorphisme. Nous obtenons ce polymorphisme pour remplacer la fonction des détails d'impression encore et encore. Permettez-moi de vous montrer une autre démonstration facile. Je vais donc supprimer toutes les lignes à partir d'ici, et ici je vais lier la pré-impression. Dans le round versus, je veux me concentrer sur les chiffres six plus huit, puis je vais obtenir cette ligne Maintenant, je vais contacter pour diffuser. Dans les codes doubles, encore une fois, je vais en passer six et dans les codes doubles, ici je vais en passer huit. Définissons le fichier et exécutons ce code dans mettermin. Ici vous pouvez le voir imprimer 14. Dans notre première déclaration imprimée, il ajoute cela à «   parce que ce sont des chiffres ». Mais dans notre deuxième instruction d'impression, elle affiche 68 parce que c'est une chaîne. Si vous observez, vous pouvez comprendre que selon le type de données, le signe de concaténation modifie C'est ce qu'on appelle le polymorphisme. Comme je vous l'ai dit, le polymorphisme signifie prendre différentes formes selon les conditions Lorsqu'une livraison de pizza est requise, il s'agit de Peter Parker. Mais pour le temps d'action, il devient Spider Man. C'est un bon exemple de polymorphisme, n'est-ce pas ? Maintenant, la question est de savoir comment réaliser le polymorphisme ? Nous pouvons obtenir un polymorphisme en utilisant le remplacement. Nous pouvons y parvenir, remplacer n'importe quelle méthode, sinon remplacer n' importe quel attribut, et nous pouvons également le créer en utilisant Dunder meth Quelle est la méthode Dunder dont nous allons parler dans nos prochains studios ? C'est une méthode spéciale. Comment pouvons-nous modifier le comportement par défaut d'un objet à l'aide de la méthamphétamine Dunder ? Nous allons tout apprendre dans notre prochain tutoriel. Il s'agit d'une simple vidéo d'introduction au polymorphisme. Dans notre prochain tutoriel, nous allons apprendre la super méthode et en la remplaçant et en l'utilisant, nous pouvons obtenir le polymorphisme Merci d'avoir regardé cette vidéo, restez connectés pour notre prochain studio 20. Super() et Overriding dans les cours: Bonjour, les gars. Contente de te revoir. Encore une fois, je suis de retour avec un nouveau tutoriel , un programme orienté objet en Python. Et dans ce tutoriel, nous allons apprendre le super et le overriding en classe Comme vous pouvez le constater, nous sommes dans l'éditeur de code de mon studio Visa, et nous avons déjà découvert ce qui prévaut dans notre précédent tutoriel Mais maintenant, je vais me concentrer sur ce sujet, par exemple, je vais créer des classes simples. Au début, je vais créer une classe, et le nom de notre classe est A. Ensuite, dans cette classe, je vais utiliser une variable de classe, nom de notre variable de classe est class. Classe 1 et on l'assigne avec une phrase. Dans le double cours, je vais taper Je suis dans la classe A. Ensuite, je vais créer un constructeur dans cette classe Ici, je vais y taper ces soulignements. Souligner. À l'intérieur des presses rondes, je vais passer sl. Pour l'instant, je ne veux pas présenter d'argument. Dans ce constructeur, je vais déclarer une variable. Pour cela, nous devons lier sl point, et notre limite variable est égale à 1. Ici, je vais faire le lien entre les doubles codes. Dans le double code, je vais taper Je suis dans le constructeur de classe Ensuite, je vais créer une autre classe et notre nom de classe est classe V. Classe B et Classe B en hauteur avec la classe A. Ensuite, dans cette classe B, je vais créer une autre variable, qui est la classe R deux, classe deux égale à l'intérieur du double cours Head Je vais taper, je suis dans la classe B. Et maintenant je vais créer deux variables d'instance en utilisant les classes. Notre première variable d'instance est A, A est égale à, et pour cela, je vais utiliser la classe A. Notre deuxième variable d'instance est petite B. Je vais créer cet objet en utilisant la classe B. Donc ici, je crée deux variables d'instance en utilisant les deux classes. Si j'imprime B, point, classe là un, puis que je place ce fichier et que j' exécute ce code dans mon terminal, comme vous pouvez le voir, c'est imprimer, je suis dans la classe A car cette classe hérite de la classe A. C' est pourquoi nous pouvons accéder à cette variable de classe Nous savons déjà comment cela fonctionne. Mais si je crée la même variable dans ce constructeur, laissez-moi vous le montrer Ici, je vais lier, vendre des points, et je vais copier la même ligne. Cellule supérieure, je vais passer. Parce que je vais changer cette phrase. Instance dans laquelle se trouve la classe A. Si je définis ce fichier et que j'exécute ce code dans mon terminal, vous pouvez maintenant le voir imprimer cette variable. C'est plutôt dans la classe A. Maintenant, dans un premier temps, il va rechercher cette variable dans ce constructeur Si la variable n' est pas disponible, elle va rechercher la variable dans la classe A et nous en avons déjà entendu parler. Il s'agit d'une variable d'instance, et vous devez vous en souvenir. Nous créons d'abord la classe A, puis nous créons la classe B, mais nous héritons de la classe A avec B. Dans cette classe B, nous créons uniquement une variable, la classe deux Si j'essaie d'imprimer la première classe de points B, alors au début, il recherchera la variable dans la classe B. Je vais chercher, existe-t-il une variable d' instance disponible nommée classe V one ? Comme vous pouvez le constater, il n' y a pas de variable d'instance. Ensuite, il va rechercher la variable d'instance dans classe A car cette classe hérite de la classe A. Comme vous pouvez le voir, cette variable est disponible dans une instance de classe C'est pourquoi il imprime la variable. N'oubliez pas qu'à chaque fois, il trouvera la variable d'instance plutôt que la variable de classe. Si je change le nom de la variable, laissez-moi vous montrer la classe où une et celle-ci dans ce fichier. Encore une fois, j'exécute ce code, comme vous pouvez le voir, il imprime également la variable d' instance. Ici, vous pouvez le voir imprimer l' instance V dans la classe A. Mais si la variable d'instance n'est pas disponible, je vais commenter cette ligne, puis lire ce fichier et exécuter ce code. Maintenant, vous pouvez le voir s' imprimer, je suis dans la classe B. Si la variable d'instance n' est pas disponible, elle préfère les variables de classe. Et la variable de classe est déjà disponible dans la classe B. C'est pourquoi elle imprime une variable de classe dans. Sinon, il imprimera la classe A, classe V une par une, je suis dans la classe A. Nous avons déjà tout appris dans nos précédents tutoriels. C'est ce qu'on appelle le remplacement. Nous avons remplacé les variables d' une classe plus à une autre. Maintenant, je vais vous montrer comment pouvons-nous remplacer les méthodes ? Je vais remplacer ce constructeur. Je décombine cette ligne et je vais la copier. Dans cette classe B, je vais coller. Ici, je vais taper Je suis dans le constructeur de classe B. Je vais également changer la variable d'instance, instance où dans la classe B. Ici, nous redéfinissons notre constructeur Si je définis ce fichier et que j'exécute les codes, comme vous le savez, il affichera maintenant cette instance d' onde variable d'instance dans la classe B. Ici, vous pouvez voir sprint, instance où dans la classe B parce que c'est bon, la variable d'instance, c'est une classe. C'est pourquoi je l'imprime. Mais si je commente cette ligne, que se passera-t-il ? Comme vous pouvez le voir, je commente cette ligne et maintenant je vais configurer ce fichier et je vais le réexécuter . Vous pouvez maintenant le voir avant la valeur de la variable de classe. Je suis en classe B. Mais comme je vous l'ai dit, on recherche toujours une variable d' instance. Si la variable d'instance n' est pas disponible, elle affiche la variable de classe. Comme vous pouvez le constater, la variable d'instance est disponible dans classe A et la classe A en hauteur dans la classe B. Maintenant, la question est de savoir pourquoi elle ne fonctionne pas et pourquoi elle imprime la valeur de la variable de classe. Parce que nous avons remplacé la méthode. Maintenant, pour une raison quelconque, je veux exécuter le constructeur de classe A, mais il est déjà remplacé Supposons que je crée une variable spéciale dans le constructeur de classe Laisse-moi te montrer. Herramtype al dot special Il dot special, égal à herramtype, je suis une variable spéciale. Maintenant, je veux accéder à cette variable en utilisant une instance de classe B. Ici, je veux taper le point B spécial. Si je définis ce fichier et que j'exécute ce code, comme vous pouvez le voir, il reviendra à ro Parce que, comme je vous l'ai dit, constructeur de variable B remplace un constructeur de variable Mais si vous souhaitez accéder à cette variable après l' avoir remplacée, dans ce cas, ce constructeur devra y taper supercondscoe Cela signifie que je peux maintenant accéder au constructeur de superclasse. N'oubliez pas que nous devons utiliser des parenthèses après Super. Si je définis ce fichier et lance le sce, vous pouvez maintenant voir que sprint I est une variable spéciale Après avoir visité le constructeur, si vous voulez accéder à la variable d' instance du constructeur précédent, dans ce cas, vous devez utiliser supermthod de cette façon, nous pouvons Avec cela, nous pouvons également accéder aux variables à partir de son propre constructeur. Laisse-moi te montrer. Ici, je veux taper B, point, et le nom de notre variable est un. Si je définis ce fichier et que j'exécute ce code dans mon terminal, comme vous pouvez le voir, commencez imprimer, je suis une variable spéciale. Il provient d'un superconstructeur. Imprime également « Je suis dans le constructeur de la classe B ». Il provient de son propre constructeur. En utilisant supermthod, vous pouvez accéder aux deux attributs classes en même temps C'est tout pour ce tutoriel. Merci d'avoir regardé cette statue vidéo. 21. Problème de la forme de diamant dans l'héritage multiple: C'est bon de vous voir, les gars. Encore une fois, je suis de retour avec un nouveau tutoriel. Dans ce tutoriel, nous allons résoudre le problème, qui est le problème de la forme du diamant. Mais avant, je vais vous expliquer ce qu'est le problème de la forme du diamant chez les héritiers multiples. Ce problème crée une confusion entre les classes. Lorsque vous utilisez des héritiers. Si vous utilisez la même méthode dans l'ensemble de cette classe, cela peut créer de la confusion. En Python, ce n'est pas si grave, mais dans d'autres langages comme C plus plus, cela crée une grande confusion. C'est pourquoi certaines langues ne prennent pas en charge les héritages multiples Vous pouvez voir un schéma ici. Ici, nous créons quatre classes, A, B, C et B. classe B hérite avec la classe A, plus C hérite avec la classe A, mais la classe D utilise plusieurs héritages Cette classe correspond également à la classe B plus C. Vous pouvez donc appeler B et C enfants de la classe A, mais D créé avec les classes B et C. Pour les classes D, B et C, les deux sont des classes parentes. Je vais maintenant appliquer le même schéma dans notre code. Comme vous pouvez le voir, nous sommes dans mon éditeur de code Visual Studio, et je crée déjà un Python à cinq points principaux P. Dans un premier temps, je vais créer quatre classes. Classe A. Pour l'instant, dans ce cours, je vais taper du pus et approfondir cette section. classe B. La classe B hérite de la classe A, et je vais aussi hériter de la classe C avec A, donc de l'hémotype C. Maintenant je vais hériter de la classe B avec B et C, B C. A Je vais changer le nom de la classe de C à D. Et maintenant je vais créer une méthode dans la classe A. L'espace des hémotypes, et notre nom de méthode classe A. L'espace des hémotypes La classe B. La classe B hérite de la classe A, et je vais aussi hériter de la classe C avec A, donc de l'hémotype C. Maintenant, je vais hériter de la classe B avec B et C, B C. A Je vais changer le nom de la classe de C à D. Et maintenant je vais créer une méthode dans la classe A. L'espace des hémotypes, et notre nom de méthode est nul. Ensuite, à l'intérieur de la robe ronde, nous devons passer S. Ensuite, dans cette méthode, je vais taper print, et je veux imprimer une déclaration Et ici je vais taper, c' est une méthode de la classe A. Avant d'éviter cette méthode, je vais créer un objet en utilisant cette classe. Notre premier nom d'objet est petit A égal à, et je veux créer cet objet avec une classe A. Notre triste nom d'objet est un petit B, et je crée cet objet avec classe B. Les deux derniers objets sont la classe C et le clus D. Ces clusters sont créés avec C et D. Vous créez quatre objets en utilisant ces quatre classes Comme vous pouvez le voir, nous avons une méthode dans la classe A. Si j'essaie de l'excéder avec un objet D, oui, nous le pouvons. Hemo type D point T. Si je définis ce fichier et que j'exécute ce code dans mon terminal, comme vous pouvez le voir, c'est un sprint, c'est une méthode de classe A B D en contact avec les classes B et C, et classe B et C en hit avec la classe A. C'est pourquoi l'objet D peut accéder à cette méthode. Mais quoi ? Si j'ai évité cette méthode en classe B, laissez-moi vous montrer. Salut T, c'est une méthode de la classe B. Si je définis ce fichier et que j'exécute ce code, comme vous pouvez le voir, c'est écrit, c'est une méthode de la classe B. Comme vous pouvez le voir, la classe créée avec B et C et la classe B ont leur propre méthode met. Cela crée maintenant une confusion juridique. Quelle méthode va être exécutée ? Mais quoi ? Si je remplace nouveau cette fonction, laissez-moi vous le montrer Encore une fois, je vais réécrire en classe C. Ici, je vais taper, c' est une méthode de la classe C. Maintenant, la question est de savoir si j'ai ce plan, quelle instruction il va précéder ? Nous avons la même fonction dans la classe C, la classe B et la classe A. Mais si j'exécute ce code, je vais vous montrer que vous pouvez voir dans mon terminal qu'il est imprimé. Il s'agit d'une méthode pro class B. Maintenant, la question est de savoir pourquoi elle n'imprime pas la méthode de classe C ? Maintenant, cela crée peu de confusion. Parce qu'au début, la classe en hauteur par rapport à la classe B. C'est pourquoi il imprime la fonction de classe B. Si je change le der, laissez-moi vous montrer si je change C ici et B ici, puis si je définis ce fichier. Et réexécutez ce code. Maintenant, vous pouvez le voir imprimé, il s'agit d'une méthode de classe C. Rappelez-vous que l'eau est très importante chez les héritiers. Dans le langage de programmation Python, cela ne crée pas de gros programmes, mais dans d'autres langages de programmation, cela crée de grandes confusions Le langage et la syntaxe Python sont très simples. Dans les autres langues, Pgomar essaie toujours d' ignorer les héritants multiples juste pour cette confusion C'est tout pour ce tutoriel. Dans notre prochain tutoriel, nous allons apprendre le remplacement des opérateurs et les méthodes Dunder Merci d'avoir regardé cette vidéo, statue. 22. Surcharge des opérateurs et méthodes de découpe: C'est bon de vous voir, les gars. Encore une fois, je suis retour avec un autre tutoriel, relatif à la programmation orientée objet en Python. Dans ce tutoriel, nous allons apprendre la surcharge des opérateurs et les méthodes Dunder Donc, sans perdre votre temps, lançons l' éditeur de code Visual Studio et voyons ce qu'il contient. Nous sommes dans mon éditeur de code Visual Studio, et comme vous pouvez le voir, nous avons un fichier Python main point pi, et je crée déjà un nom de classe student, et dans cette classe, nous avons une méthode de classe et une fonction, puis nous imprimons les détails. Avec cela, nous avons une variable de classe et son constructeur. Ici, vous pouvez le voir, nous créons deux objets Advan et Smith avec cette classe, et nous leur transmettons ici leur nom, leur âge et leur taille. Si j'exécute ce code, il ne renverra aucune erreur. Mais si je joins les deux objets puis que j'exécute le code, laissez-moi vous le montrer. Ici, je vais taper print is at the round ss, je vais passer le nom de notre premier objet, en ajouter un. Ajoutez-en un plus Smith. Si je place ce fichier, je ferme mon terminal et je lis ce code, comme vous pouvez le voir, c'est écrit en forme de flèche. C'est un type de flèche écrit, un type ouvert non pris en charge En utilisant le signe de concaténation, nous ne pouvons pas joindre des objets comme ça, mais en utilisant la méthode Dunder, nous pouvons les coulisses, nous devons utiliser une méthode dunder, Dunder add pour ajouter les deux objets Laissez-moi vous montrer comment cela fonctionne. Ici, après cette ligne, je vais taper Dave undo undersco at function C'est une méthode Dunder. Ensuite, à l'intérieur du round ss, nous devons passer deux paramètres self dans l'objet, et ici nous devons prendre un autre paramètre, qui est autre. Dans cette méthode dunder, je souhaite ajouter l'objet H 21 plus 23 Je veux retourner, renvoyer le silt H, CGatenateOT H, l' autre point H. Maintenant, je vais lancer Sde dans mon terminal Je vais faire l'éloge du bouton Run. Après avoir exécuté ce code, vous pouvez le voir écrit 44, 21 plus 23 égal à 44. Il s'agit d'une méthode spéciale qui permet de joindre deux valeurs d'objet différentes. C'est une méthode spéciale que nous appelons méthode Dunder, elle surcharger nos opérateurs, mais il n'est pas obligatoire que chaque méthode spéciale soit utilisée pour surcharger Semblable à cette méthode, il existe de nombreuses méthodes Dunder, comme format de croûteur de sol Ces méthodes sont également appelées méthode magique, magie autrement dit méthode Dunder Je vais vous montrer un autre exemple de cette méthode. Permettez-moi de vous donner un autre exemple. Pour cela, je vais dupliquer cette section. Je vais dupliquer ce type de méthyle Dunder et Hemo , un autre nom de méthode qui est protéine Ici, je vais renvoyer la cellule H divisée par un point H. Et aussi, je vais changer la valeur de cet objet. Lui, je dois passer sept ans. Si j'imprime, j'en ajoute un divisé par Smith puis que je place ce fichier sur le code de mon terminal, comme vous pouvez le voir, il est écrit trois p zéro. Cette méthode dunder surcharge l'opérateur de barre oblique, et vous pouvez consulter tous les opérateurs dans la documentation, comment vous pouvez utiliser Admthod, comment vous pouvez utiliser la méthode, comment vous pouvez utiliser la méthode de division de flux, division de flux Ne t'inquiète pas. Je vais fournir le lien dans la description. Il s'agit de l'introduction très simple et basique de Dunder et de la surcharge des opérateurs Merci d'avoir regardé cette vidéo. 23. Cours de base abstrait: C'est bon de vous voir, les gars. Encore une fois, je reviens un autre sujet lié à la programmation orientée objet en Python. Dans ce tutoriel, nous allons apprendre les classes de base abstraites. Vous allez également apprendre la méthode abstraite et la méta AVC. Mais maintenant, la question est : qu'est-ce qu'une classe de base abstraite ? Les classes abstraites séparaient l'interface de l'implémentation. Ils définissent les méthodes et les propriétés génétiques qui doivent être utilisées dans les sous-classes Comme vous pouvez le voir dans un éditeur de code de Visor Studio, il existe une classe nommée shape. C'est notre classe de base et dans cette classe de base, nous avons une fonction nommée zone d'impression. Ensuite, nous créons une autre classe nommée rectangle et nous héritons de cette classe avec la classe shape Et à l'intérieur de cette classe, nous l'avons construit. Dans ce constructeur, nous déclarons deux variables de longueur et de largeur, la longueur six et la largeur sept Nous remplaçons également la fonction de zone d'impression dans cette classe. Ici, je crée un objet en utilisant la classe rectangle. Si j'exécute ce code, comme vous pouvez le voir sur mon terminal, il n'y a pas d'erreur. Cela a parfaitement fonctionné. Je vais maintenant commenter cette fonction de zone d'impression de la classe rectangle. Sélectionnez et je commente. Si j'exécute ce code, encore une fois, vous pouvez voir dans mon terminal qu'il n'y a pas de O. C'est un comportement tout à fait normal. Maintenant, la classe de base va implémenter une règle. Si l'une des classes est en hauteur avec moi, elle devrait remplacer la fonction de zone d'impression Comme vous pouvez le constater, classe le rectangle en hauteur avec la classe Shape. Donc, si nous ne passons pas à la fonction de zone d'impression dans la classe Rectangle, elle renverra une flèche. Si AUCUNE classe en hauteur n'est associée à une classe de forme, la classe doit remplacer la fonction de zone d'impression Maintenant, la question est de savoir comment la classe de base peut définir la pièce. Pour cela, nous devons utiliser la méta-classe ABC. Avec cela, nous devons également utiliser une méthode abstraite. Ici, je vais importer ce module. Je vais taper à partir de la méta ABC d'ABC Import. Avec cela, nous devons importer une méthode abstraite, une méthode abstraite. Maintenant, en utilisant ces méta-méthodes abstraites ABC, ce verre de base peut fonctionner. Pour cela, à l'intérieur de la presse ronde, nous devons taper la métaclasse Metaglass égale Ensuite, nous devons utiliser le décorateur de méthode abstraite. Copiez le nom et avant le nom de la fonction, je vais taper selon la méthode rate abstract. Maintenant, cette classe de base définit une règle. Si vous ne remplacez pas cette méthode de zone d'impression dans votre classe, vous ne pourrez créer aucun objet avec elle Si je définis ce fichier et que j'exécute ce code dans mon terminal, comme vous pouvez le voir, il se trouve sur une flèche, ce qui est une erreur de type, et comme vous pouvez le voir, print ne peut pas créer de rectangle de classe abstraite avec une zone d'impression de méthode abstraite Mais si je remplace la fonction de zone d'impression dans la classe rectangle, que se passera-t-il ? Je vais supprimer cette ligne et remplacer à nouveau la fonction de zone d' impression. Si je définis ce fichier et que j'exécute ce code dans mon terminal, maintenant vous pouvez le voir, maintenant cela fonctionne parfaitement, il n'y a pas d'érosion dans notre terminal Il s'agit de l'utilisation de la classe de base abstraite et des mathématiques abstraites. J'espère que le concept est maintenant clair pour vous. Merci d'avoir regardé cette vidéo.