Transcription
1. Introduction à la programmation orientée sur les objets: Bienvenue dans la programmation
orientée objet complète en masterclass Python. Si vous apprenez Python
et que vous souhaitez faire passer vos compétences
en programmation au niveau supérieur. Et ce cours est fait pour vous. Vous n'avez pas besoin de
connaissances préalables pour commencer. Alors, à quoi sert
la programmation orientée objet ? Vous pouvez vous demander si l'OOP est utilisé en informatique pour
implémenter des structures de données. Il est également utilisé dans le développement
Web, bases de données, la science des données, intelligence
artificielle, le développement de
jeux , les interfaces utilisateur
graphiques
et bien plus encore. Dans cette classe, vous apprendrez
tous les fondamentaux de programmation orientée
objet en Python et les appliquerez
à la création d'applications. Commençons donc. Le ferons-nous ?
2. Cours et objets: Bonjour et
bienvenue dans ma vidéo. Aujourd'hui, nous allons jeter un coup d'œil à programmation orientée
objet
en Python, ou autrement dit, op. Avec la programmation
orientée objet, vous pouvez créer vos propres classes
personnalisées en fonction de
vos besoins et utiliser ces
classes à travers des objets. Alors, qu'est-ce qu'un objet ? Vous serez surpris
que vous utilisiez des objets quotidiennement
sans le savoir. Voici donc un exemple d'
objets que nous utilisons quotidiennement si nous imprimons
le type d'un entier, par
exemple, c'est
ce que nous allons obtenir. Comme vous pouvez le voir, il est
écrit entier de classe. Ce numéro que nous avons
tapé ici est donc un objet de la classe et
similaire à une chaîne. Le mot mathématique ici est un
objet de la chaîne de classe. De même, lorsque nous
créons une fonction, nous ne faisons
que
créer un objet de cette classe originale appelée
fonction par exemple. Nous avons donc établi
que la plupart des choses que nous utilisons en Python sont
des objets de leur propre classe. Apprenons donc à créer nos propres classes avec leurs
propres fonctionnalités. Créons donc une classe
et sa forme la plus simple. Il est toujours recommandé de
mettre
en majuscule la première lettre du nom de notre classe, qui dans ce cas est chat. Si nous voulons utiliser cette classe, nous devons créer un
objet de cette classe. Par conséquent, c1 est le nom de l'objet et il
appelle la classe Cat. Asseyez-vous dessus et
voyons à quoi ça ressemble. Cette classe de chat ne fait presque
rien d'autre que l'impression. Je suis un chat, ce qui n'est
vraiment pas si utile. Nous nous attendons
à ce que notre classe prenne les noms, les
âges des utilisateurs font des
choses, etc. C'est pourquoi la
méthode init entre en jeu. Toutes les classes ont une
méthode appelée init, qui est toujours exécutée lorsque la classe est
initiée. Nous allons utiliser la
méthode net pour attribuer des attributs ou d'autres opérations
nécessaires lors de la création
de l'objet. Par exemple, si je voulais
créer une classe de personne, je voulais prendre des valeurs
telles que le nom et l'âge. Nous définissons donc une
classe nommée personne. Nous définissons maintenant la méthode net. Comme vous pouvez le constater, c'est
une valeur par défaut dans les
classes que python
écrit automatiquement le tout. Pour moi, l'argument self
est une référence à l'instance actuelle
de la classe et sert à accéder aux variables de
classe. Maintenant, ajoutons des
arguments à notre classe. Maintenant, utilisons notre classe
en créant un objet. Comme vous pouvez le voir lorsque je
survole les parenthèses, cela indique que le paramètre, l'âge
et le nom ne sont pas remplis. Alors remplissons-les respectivement. N'oubliez pas qu'il est très
nécessaire d'écrire un
point avant d'attribuer le nom et le bord de nos
variables. Ajoutons maintenant une autre
méthode à notre classe, la méthode qui imprime des
détails sur la personne. Maintenant que nous avons défini P1, P2 et P3 comme un
objet de notre classe. Ils peuvent utiliser sa
méthode, obtenir des détails. Que se passe-t-il si nous en
créons un avant sans affecter ces variables
requises comme name et edge, nous obtiendrons une erreur indiquant qu'il manque les deux arguments
requis. Vous vous demandez peut-être pourquoi la
méthode d'initialisation est-elle si spéciale ? Pourquoi devons-nous le définir par défaut chaque fois
que nous créons une classe ? Parce que par nature, lorsque
nous tapons P est égal à personne, nous nous attendons à
remplir les détails immédiatement et ensuite utiliser
n'importe quelle méthode de la classe. Par exemple, si nous l'avons
commenté et cela, ce qui le rend désormais
invisible pour notre programme, comme vous pouvez les voir maintenant pour
transformer un argument inattendu. Nous devons donc maintenant créer une méthode complète qui prend les
entrées de l'utilisateur. Par exemple,
nous allons maintenant devoir supprimer les arguments
et les insérer via
la méthode
insert details. Nous pouvons maintenant utiliser la méthode
get details. Donc, ce n'
est pas seulement déroutant pour l'utilisateur sur tous ceux qui ont
affaire à ce code. Cela prend également beaucoup de temps. Et si quoi que ce soit, les cours
étaient censés faire était de raccourcir le temps
nécessaire pour faire les choses. méthode du net est-elle donc nécessaire ? Pas vraiment, la classe
fonctionne très bien sans elle, mais ça aide beaucoup. Il s'agit donc du code
sans la méthode net, et c'est le code qui
ajoutera ensuite la méthode. Pour résumer, nous créons
la classe appelée Person et lui avons donné les
attributs, le nom et l'âge suivants. Nous avons défini des méthodes dans notre classe pour lui
donner des fonctionnalités, comme obtenir des détails. Ensuite, nous avons créé des objets de cette classe appelés V1, V2, V3, et nous avons rempli les paramètres
nécessaires et nous utilisons la méthode get
details. Essayons donc un autre exemple. Par exemple, nous avons créé
un cours de chien et de chat, ou est-ce qu'ils prennent leur nom et leur âge ? Nous allons donc les enlever. De toute évidence, nous pouvons créer un
objet à partir de ces classes. Si vous remarquez que les deux classes
sont presque identiques, la seule
différence étant qu' elles impriment des chaînes
différentes. Nous avons donc dû l'écrire deux fois lorsque nous aurions pu
écrire une classe
générale parentale qui inclut les informations génétiques sur
chaque animal, par exemple. Mais comment relier
ces classes ? Vous pouvez vous demander comment autoriser classes de
chats et de chiens à
hériter des attributs de la classe
animale plus générale simplement en ouvrant parenthèses et tapant la classe d'équilibre que
nous allons ajouter, dans ce cas, animal. Maintenant, les classes de chats et de
chiens ont hérité de la méthode init
de la classe parent animal, et nous n'avons plus besoin de la
spécifier à chaque fois. Allons de l'avant
et retirez-les. Maintenant. Utilisons nos méthodes et veillons à ce qu'elles fonctionnent bien. Nous avons donc non seulement
raccourci notre code tout en
conservant les mêmes fonctionnalités, mais nous pouvons maintenant ajouter des méthodes
qui s'appliquent aux classes de chats et de
chiens sans
avoir à les ajouter spécifiquement aux chats et aux chiens,
par exemple. Maintenant, utilisons cette
méthode, chat par exemple. J'ai oublié de l'ajouter ici. Même si nous n'avons pas défini cette méthode dans la classe des chats, chat hérite toujours de ces méthodes de sa classe mère animal. C'est donc tout pour les bases. Dans la prochaine vidéo, nous allons examiner
de plus près l'héritage et les
différents types d'héritage. C'est donc tout pour la vidéo d'aujourd'hui. Merci beaucoup d'avoir regardé et j'espère
vous voir sur le prochain.
3. Héritage: Bonjour et
bienvenue dans ma vidéo. Aujourd'hui, nous allons examiner les types d' héritage et de
programmation orientée objet en Python. Alors pourquoi l'héritage est-il
utile et le biofilm, il dépeint avec précision les relations
réelles. Il permet la réutilisabilité du code. Nous n'avons pas besoin de réécrire le même code encore
et encore. Il nous permet d'ajouter de nouvelles fonctionnalités à notre classe sans
avoir à la modifier. Il est de nature transitive, ce qui implique que si classe B hérite d'une
autre classe a, toutes ces sous-classes hériteront automatiquement de la classe a. jetez un coup
d'œil à différents types d'héritage, commençant par
un seul héritage. Par exemple, disons que je voulais créer
une classe de pays qui représenterait le Canada. J'aurais une
classe parentale appelée Canada. Nous allons maintenant créer
une classe d'enfants
héritant du Canada
appelée Ottawa. Étant donné qu'Ottawa est une ville
et fait partie du Canada, toutes les fonctionnalités ajoutées au Canada doivent
être automatiquement appliquées à l'automobile. Maintenant, je vais créer un
objet de la classe enfant Ottawa et utiliser sa méthode ville. Étant donné que Auto est une
classe enfant du Canada, je peux également utiliser son nom de pays de méthode sans avoir à le définir à
l'intérieur de O2. Par exemple, le second
type est l'héritage multiple. Et l'héritage multiple,
les entités de toutes les classes de base sont héritées dans la classe
dérivée. Créons donc deux
classes de parents, mère et père. Nous allons maintenant créer
un cluster enfant hérité de ces deux classes. Maintenant, créons un objet à partir de classe sun et utilisons des entités
de sa classe parente. Comme vous pouvez le constater, nous avons
pu utiliser nom du
père et le nom de mère, même s'ils n'étaient pas
définis dans notre soleil de classe. Et c'est parce que nous avons
hérité
de ces noms des deux classes,
mère et père. Le troisième type est l'héritage à
plusieurs niveaux. Hérite à la fois des entités de classe de base et de classe
dérivées
dans la nouvelle classe dérivée. Voyons donc un exemple. Notez que dans les deux classes enfants, nous
invoquons le constructeur
de la classe parente. Maintenant, créons des objets de nos classes et commençons à les utiliser. Donc, la raison pour laquelle nous passons
trois paramètres est que la
classe du soleil prend trois noms. Comme vous pouvez le constater, le
code fonctionne très bien. Que se passe-t-il si nous supprimons l'
invocation du constructeur
de la classe Grand-père ? Comme vous pouvez le constater, le code est cassé. Le quatrième type est l'héritage
hiérarchique. Il s'agit d'une situation dans
laquelle la classe équilibrée est héritée par
plusieurs sous-classes. Nous avons maintenant un verre de barons
avec deux classes pour enfants. N'oubliez pas que ces deux classes
dérivées peuvent utiliser les fonctions et les fonctionnalités
de la classe de leurs parents. Toutefois, l'enfant un ne peut pas utiliser
les fonctions du canal deux. Jusqu'à présent, c'est bon. Ils peuvent utiliser les entités de classe du
parent et leurs propres entités. Cependant, au moment où
nous avons essayé
d'utiliser une fonction de l'enfant un et l'enfant deux, nous obtiendrons une erreur. Et enfin, le cinquième
type, l'héritage hybride. Dans ce type, les caractéristiques de
plus d'une période d' héritage sont mélangées pour
former un héritage hybride. Voyons donc un exemple. Créons maintenant des
objets de nos classes. Enfin, voyons comment nous pourrions assembler tout cela et créer
un programme de calculatrice à l'aide fonctions de
programmation orientées
objet, instructions
f et de boucles while. Commençons par créer une classe de
calculatrice pour inclure toutes nos opérations
mathématiques. Nous devrons maintenant
créer un objet pour notre calculatrice de classe afin que
nous puissions commencer à l'utiliser. Créons maintenant une
boucle while et définissons la valeur true et demandons à l'utilisateur d'entrer opération
mathématique souhaitée. L'avantage d'utiliser la boucle
while ici est que ce programme continuera à fonctionner moins que l'utilisateur n'en choisisse cinq, ce
qui dans ce cas, nous
devrons faire une instruction F indiquant que le choix F est
égal à cinq, puis casser, ce qui
va casser la boucle. Quoi qu'il en soit, continuons
avec notre programme et créons une logique à l'
aide d'instructions f. Cela permettra de s'assurer que l'utilisateur
a saisi un choix valide. abord, vérifions si l'
utilisateur souhaite quitter ou non. Si ce n'est pas le cas,
demandons l'entrée de l'utilisateur pour effectuer les calculs. Créons maintenant une
instruction F LF correspondant à leur choix. Commençons par ajouter notre programme et voir à
quoi il ressemble. Ensuite, nous appuyons sur F5,
il devrait quitter. Mais notre programme n'est
toujours pas parfait. Si l'utilisateur a entré
la chaîne obtiendra une erreur de valeur car épouse et pas
pu convertir une
chaîne en entier. Mettons donc nos
compétences en gestion des
exceptions à utiliser et à
traiter avec cet adulte. Comme vous pouvez le constater, cela fonctionne en
gérant notre erreur, mais il ne réexécute pas
le programme pour nous. Pour cela, nous pouvons simplement
copier et coller le code sous le bloc sauf afin que, lorsqu'il s'exécute, il exécute également notre code. Maintenant, bien sûr, cette méthode présente
des défauts. Par exemple, si l'utilisateur doit entrer une chaîne une
autre fois, vous obtiendrez une erreur
car nous nous attendons à
ce qu'il ne gère la cellule qu'une seule fois. C'est là que les
nouvelles tentatives entrent en jeu, mais nous ne voulons pas trop
détourner la vidéo. Nous venons donc de nous mettre en place avec ça. En conclusion, vous n'avez pas
vraiment besoin d'être limité par un certain
style manuscrit
autant que vous devriez vous concentrer sur la
structuration de votre code. Cela signifie que vous devez suivre
votre propre structure qui répond à vos propres besoins. C'est donc tout pour la vidéo d'aujourd'hui. Merci beaucoup d'avoir regardé et j'espère
vous voir sur le prochain.
4. Méthodes statiques, méthodes de cours, attributs de cours: Bonjour et
bienvenue dans ma vidéo. Aujourd'hui, nous allons
examiner les méthodes statiques, les méthodes de
classe et les attributs, en classe et les attributs, commençant par les attributs de classe. Qu'est-ce que les attributs de classe ? Un attribut de classe est une
variable appartenant à une classe plutôt qu'à
un objet particulier. Prenons donc un exemple. Donc maintenant, nous avons créé une classe d'animaux
simple qui va ensuite init méthode dans laquelle vous
transmettez le nom de l'animal. Créons donc une
instance de cette classe. Vous vous demandez peut-être quelle est cette variable
ici, le nombre d'animaux ? Eh bien, c'est un attribut de classe. Et tout de suite ce qui en fait
un attribut de classe c'
est qu'il n'
utilise pas le nom de soi. Quelle est donc la différence
entre cette classe, cet attribut, nombre d'animaux et un nom
similaire, par
exemple, un nom change
d'instance à l'autre. Par exemple, A1 aura
un nom différent de celui de A2. Cependant, A1
et A2 auront tous deux le même nombre d'
animaux, nombre d'animaux. Il ne
dépend pas d'une instance. Par exemple, tel point que je pouvais
dériver l'animal,
ces animaux, et j'obtiendrais
toujours les mêmes résultats. qui signifie que je peux accéder à cet
attribut de classe à partir de la classe elle-même sans avoir à créer une instance comme
celle-ci ici. Maintenant que nous avons
établi que le nombre d' animaux est un attribut de classe qui s'applique à
l'ensemble de la classe. Que pouvons-nous en faire ? abord, nous pouvons suivre le
nombre d' instances de notre animal de classe qui
ont été créées par ordre, c'est-à-dire le
nombre d'animaux que nous avons. Par exemple, remarquez
que nous avons utilisé l'animal non soi-même, sinon cela nous aurait
donné des résultats différents. C'est donc l'idée de base qui
sous-tend les attributs de classe. Il y a des utilisateurs
pour eux, bien sûr, comme la possibilité de
définir une constante que vous souhaitez utiliser pour n'importe quelle
instance de cette classe. Par exemple, vous avez
eu un cours de physique avec Lightspeed
étant évidemment une constante. Au lieu de
le définir en dehors de votre classe en tant que variable globale. Vous pouvez plutôt le
définir à l'intérieur de votre classe en tant qu'
attribut de classe pour y
accéder plus facilement. Pourquoi s'agit-il donc d'une
meilleure approche ? Nous voulons toujours nous assurer que vos cours soient aussi
indépendants que possible. qui signifie que si vous utilisiez cette classe ailleurs
à un moment donné, toutes ses
méthodes et variables sont prédéfinies à l'intérieur et prêtes à être utilisées ailleurs. C'est ainsi que vous pouvez utiliser les attributs de
classe à
votre avantage en créant n'importe quelle variable dont vous pourriez avoir besoin à l'intérieur de la classe, au lieu de la créer
en dehors en tant que variable globale. Parlons maintenant des méthodes
de classe. Alors rappelez-vous comment nous avons
incrémenté un nombre d'animaux ici. Chaque fois qu'une instance de l'animal de
classe a été créée, nous pouvons le faire un peu en
utilisant la méthode de classe. Créons donc une méthode de classe
et voyons à quoi elle ressemble. Comme vous pouvez le constater, nous utilisons
TLS au lieu de soi. Nous allons maintenant rendre
le nombre d'animaux. Ce que nous devons également
faire, c'est utiliser un décorateur de classe pour indiquer qu'il s'agit bien
d'une méthode de classe. Nous avons donc créé une méthode de classe qui renvoie
le nombre d'animaux. Nous avons besoin d'une
méthode de classe qui ajoute plus une fois qu'un animal ou
une instance est créé. Créons donc
une autre méthode de classe. Alors, comment pouvons-nous utiliser la méthode Add
animals class ? Par exemple, nous pouvons retirer
ce nombre d'
animaux de notre méthode d'initialisation et le remplacer par des animaux publicitaires. Ce que cela va
faire, c'est qu'il appellera la méthode de classe ajouter des
animaux à chaque fois. Et il a été appelé, ce qui signifie que
chaque fois qu'une instance de la classe animal
a créé comme A1, A2, elle utilisera la
méthode de classe et les animaux. Voyons donc si
cela fonctionne en utilisant méthode de classe
num animals,
il devrait revenir à. C'était donc des méthodes de classe. Jetons un coup d'
œil aux méthodes statiques. Voici quelques-unes des
caractéristiques des méthodes statiques. Tout d'abord, c'est lié à la classe. Il ne peut pas modifier un état de
classe ou d'objet, et il ne peut pas accéder ou modifier la classe et ses variables d'
instance. Parfois, lorsque nous
créons un programme de calculatrice, nous avons tendance à définir des méthodes telles que vous pouvez définir ces méthodes à l'intérieur d'une classe et les utiliser comme méthodes statiques. Par exemple,
nous pouvons maintenant utiliser le décorateur de
classe pour indiquer qu'il s'agit
d'une méthode statique. Pour utiliser ces méthodes, au lieu de créer une instance de la calculatrice
de classe, nous pouvions simplement y accéder
immédiatement à l'aide de la calculatrice. Donc, pour ces méthodes, je n'ai pas besoin de créer une instance de la
calculatrice de classe comme celle-ci. Ensuite, utilisez C1. Oh, désolé. Je pourrais simplement utiliser la calculatrice immédiatement sans avoir
à créer une instance. Je suis d'accord que certains
pourraient dire : Eh bien, vous auriez pu définir ces
méthodes globalement et utiliser publicité immédiatement au lieu d'une
calculatrice, comme par exemple. Il y a des
complications à cela. Et c'est principalement
pour garder votre code plus structuré et organisé. C'est donc tout pour la vidéo d'aujourd'hui. Merci beaucoup d'avoir regardé et j'espère
vous voir sur le prochain.
5. Importer des cours: Bonjour et
bienvenue dans ma vidéo. Aujourd'hui, nous allons
examiner différentes méthodes. Vous pouvez importer des classes
jusqu'au programme, commençant par la méthode la plus
simple dans laquelle le fichier ou la classe que vous importez se trouve dans votre espace de travail ou votre répertoire. Nous avons donc ici deux
fichiers Python, hommes et test. Ils sont tous deux dans le
même répertoire. Nous avons donc une classe, un test que nous
voulons utiliser à main.py. Comme vous pouvez le voir, test.py
a une classe appelée calculatrice et nous
voulons l'importer. Et pour acheter, pour ce faire,
nous ferons ce qui suit. abord, nous allons importer
le nom du fichier. Dans ce cas, c'est un test. Allons de l'avant
et abandonnons le test. Ensuite, pour utiliser la classe, comme n'importe quelle autre classe, vous devez
créer une instance d'un objet de cette classe. Créons donc une
instance de test. Comme vous pouvez le voir lorsque je tape point, cela me montre qu'il y a
une classe appelée calculatrice que je devrais choisir
pour commencer à l'utiliser. Alors choisissons la calculatrice. Maintenant, comme n'importe quelle instance, nous pouvons utiliser ses
méthodes et ses attributs. Comme vous pouvez le constater, cela
fonctionne très bien. Remarquez que j'ai dû taper le nom
du fichier qui est test, puis choisir une certaine classe dans ce fichier,
qui a une calculatrice. Cela signifie que je pourrais avoir
plusieurs classes dans le fichier de test parmi lesquelles je pourrais
choisir. Par exemple. Nous allons maintenant utiliser la classe de physique. C'est donc en supposant que
la classe que nous importons se trouve dans
notre répertoire. Que se passe-t-il si je
veux importer un fichier en
classe sur mon bureau, par
exemple ? Pour ce faire, nous allons d'
abord importer le succès. Ensuite, nous saisirons le chemin de points CIS. Ensuite, nous saisirons l'emplacement du fichier que nous allons importer. Nous pouvons connaître l'
emplacement du phi en nous dirigeant vers
le fichier lui-même. Cliquez avec le bouton droit de la souris, puis
cliquez sur Propriétés. Nous allons maintenant importer
le fichier lui-même, qui est le fichier test. Maintenant, pour commencer à l'utiliser comme n'importe quelle classe, nous devons
créer une instance de celle-ci. J'ai donc importé les
mathématiques de classe et j'utilise la méthode add pour savoir quelle classe et quelles
méthodes nous avons dans notre fichier. Nous pouvons simplement l'ouvrir à
l'aide du bloc-notes. Ce que nous avons fait est donc important. Le fichier de test final a ensuite créé une instance de la classe
mathématique via le fichier de test. Ensuite, nous utilisons la méthode
add à l'intérieur de cette classe. C'est donc tout pour la vidéo d'aujourd'hui. Merci beaucoup d'avoir regardé et j'espère vous
voir dans le prochain.