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.