Concept de programmation orientée objet en Python

Publié: 2020-12-01

Orienté objet est un paradigme de programmation qui suit le concept de classes et d'objets à la place des fonctions et de la logique. Il est également connu comme la méthode sophistiquée de codage qui organise le code de manière à augmenter la lisibilité et la maintenabilité du code. Le concept OOP est un sujet important dans la programmation et aide à créer des modules réutilisables pour une variété de tâches en science des données.

Il s'agit souvent d'une condition préalable lors de la création de modèles d'apprentissage en profondeur à l'aide de diverses bibliothèques telles que Pytorch, où le modèle de base est réutilisé pour ajouter des couches personnalisées. Explorons ce que ce concept enseigne et comment l'appliquer dans des cas d'utilisation pratiques.

Table des matières

Qu'est-ce que le concept de POO ?

Considérez un smartphone qui peut être de n'importe quelle marque, mais il y a une variété de choses communes entre eux. Tous ont des écrans, des haut-parleurs, des boutons et au niveau logiciel, presque tous sont alimentés par Android. Considérons maintenant un cas où chaque entreprise crée son logiciel à partir de zéro, même le noyau qui contrôle la plupart des composants matériels.

Cela deviendrait un processus fastidieux et coûteux, augmentant ainsi le prix des appareils. Que se passe-t-il s'il existe un modèle abstrait ou généralisé qui peut être modifié au fil du temps par n'importe quel fabricant en fonction de ses besoins ? Ce concept tente de capturer cette méthode basée sur les classes où le code est structuré en classes avec différentes méthodes d'accès.

Que sont les classes et les objets ?

Les classes sont les plans de ce qui doit être mis en œuvre. Si nous considérons notre exemple précédent, nous pouvons avoir des fonctionnalités pour appeler une personne, recevoir des appels, des messages, jouer de la musique ou faire d'autres choses.

Toutes ces choses sont communes à tous les smartphones, leur fonctionnement interne est également similaire et elles peuvent être considérées comme une classe de fonctions de smartphone ou une classe. Les objets peuvent être définis comme toutes les marques de smartphones qui utiliseront cette implémentation commune dans leurs produits avec des modifications.

Il peut y avoir plusieurs instances de cette classe de base, et chaque instance peut contenir un état de valeurs différent sans interférer avec d'autres objets. En Python, une classe peut être déclarée en utilisant le mot-clé réservé class. De plus, le constructeur __init__ est utilisé pour initialiser les variables de classe.

Société de classe :

def __init__ (soi) :

self.name = 'upGrad'

def display_name (soi) :

print(f"Le nom de la société est : {self.name}")

cm = Société()

cm.display_name()

Lisez aussi: Salaire d'un développeur Python en Inde

Différents piliers de la POO

Maintenant que nous connaissons les éléments de base de ce paradigme, examinons certaines des fonctionnalités/caractéristiques les plus importantes de ce concept :

Encapsulation

Cela stipule que les méthodes (ou fonctions) de la classe et les données qui lui sont associées sont encapsulées ou protégées contre tout accès accidentel ou externe. Cela signifie que les attributs définis dans une portée privée ou protégée ne sont pas accessibles en dehors de la classe.

Il y a un souci pour Python qu'il n'y ait pas de concept de variables privées dans ce langage, donc les attributs sont accessibles en dehors de la classe.

Il existe un moyen de reconnaître les attributs privés en utilisant un double trait de soulignement au début de la déclaration et si vous essayez d'y accéder en dehors de la classe via l'objet de la même chose, vous serez invité avec AttributeError car Python applique le nom mangling chaque fois qu'il détecte une variable privée. Cela ne donne aucune sécurité à vos attributs car ils sont toujours accessibles.

Héritage

Comme le mot l'indique, il prend une partie d'une classe existante appelée classe parent vers une nouvelle classe appelée classe enfant avec peu ou pas de changements. Nous pouvons relier cela à notre exemple de manière à ce que toutes les marques de smartphones héritent d'une classe de téléphone générique qui les aidera à exécuter des fonctions de base, et elles peuvent ajouter leurs codes supplémentaires pour améliorer l'expérience utilisateur en fonction de leurs besoins. En Python, l'héritage d'une classe se fait par :

Classe A:

du contenu

classe B(A):

contenu de la classe dérivée

Il existe un autre concept lié à l'héritage appelé remplacement de fonction. Supposons que la fonction appareil photo du smartphone générique ne soit pas si bonne et que le fabricant propose une meilleure solution pour cela. Ils peuvent directement remplacer cette fonction en la définissant à nouveau dans la classe enfant et y appliquer les modifications.

Abstraction

Il définit le plan directeur ou une interface vers les implémentations des sous-classes. Cela signifie que certaines méthodes sont définies dans la classe de base qui n'est pas entièrement implémentée et seule une vue abstraite est définie. Il peut aider au suivi des différentes fonctionnalités du module et des sous-modules à créer.

Par exemple, certains smartphones prennent en charge NFC (connectivité en champ proche) et cette fonctionnalité peut être définie dans la classe de base et son implémentation peut être codée dans la classe enfant du téléphone résultant. De cette manière, la classe de base abstraite peut fournir la vue d'ensemble du module et des implémentations ultérieures. Voici un exemple:

Téléphone de la classe :

caméra def (auto):

passe

def NFC (soi):

passe

classe Xyz (téléphone):

def NFC (soi):

retourner Vrai

En savoir plus sur : Principaux outils Python

Polymorphisme

Si nous suivons le sens racine, cela signifie plusieurs formes de la même chose. Le polymorphisme définit les fonctions en fonction du nombre ou des types d'arguments passés. Par exemple, la fonction de longueur en Python peut prendre n'importe quel type d'itérable ou d'objet et renvoie la longueur entière.

Cela peut également être qualifié de surcharge de fonction, mais voici un hic dans le langage Python. Nous ne pouvons pas définir les mêmes fonctions de nom avec des arguments différents et si cela est fait, alors il ne considère que la dernière entrée.

Cas d'utilisation pratiques de la POO

Nous avons vu en quoi consiste ce concept et quelles fonctionnalités il offre. Jetez un œil à quelques exemples où vous pouvez appliquer ce concept :

Jinja Templating : Si vous avez une certaine expérience avec le framework Flask de Python qui gère les routes et le côté serveur, ce modèle aide à gérer ces données sur le front-end. Généralement, un fichier HTML de base est créé qui est ensuite hérité par toutes les pages pour avoir la même mise en page sur tout le site Web.

Applications Kivy : il s'agit d'une bibliothèque qui vous permet de créer des applications python basées sur une interface graphique multiplateforme (Android et IOS). Ici, la plupart de la programmation est basée sur le concept OOP.

ORM : Object-relational Mappers offre un moyen de définir les bases de données relationnelles dans le code d'application en utilisant n'importe quel langage. Par exemple, dans Django, vous pouvez définir différents types de modèles en utilisant des classes pour différents types d'utilisateurs.

Conclusion

Dans cet article, nous avons discuté de ce qu'est le concept OOP, de ses blocs de construction (classes et objets), de différents piliers et de quelques exemples où ce paradigme est adopté. Il existe de nombreux endroits où cette méthode de programmation est envisagée en raison d'une meilleure gestion du code, de la collaboration et de la fourniture de fonctionnalités abstraites à d'autres programmes qui en dépendent.

Si vous êtes curieux d'en savoir plus sur python, la science des données, consultez le diplôme PG de IIIT-B & upGrad en science des données qui est créé pour les professionnels en activité et propose plus de 10 études de cas et projets, des ateliers pratiques, un mentorat avec des experts de l'industrie, 1-on-1 avec des mentors de l'industrie, plus de 400 heures d'apprentissage et d'aide à l'emploi avec les meilleures entreprises.

Qu'est-ce que la POO ?

La programmation orientée objet, abrégée en OOP, est une technique de programmation informatique qui organise les conceptions de logiciels en fonction des données, au lieu de les organiser en fonction des fonctions et de la logique. La POO se concentre sur les objets, c'est-à-dire les champs de données avec des propriétés et un comportement distincts que les développeurs souhaitent contrôler plutôt que sur la logique nécessaire pour les gérer. Cette méthode de programmation est idéale pour les applications volumineuses et complexes qui sont constamment mises à jour ou maintenues. La POO couvre les initiatives de fabrication, de conception et d'applications mobiles. Les autres avantages de ce langage sont la réutilisation du code, l'évolutivité et l'efficacité.

Quelles sont les différentes langues en POO ?

Les langages de programmation orientés objet constituent plusieurs des langages de codage les plus fréquemment utilisés dans l'industrie informatique d'aujourd'hui. Les langages POO se trouvent partout. Ces langages utilisent des objets qui contiennent à la fois des données et du code. L'encapsulation, l'abstraction, le polymorphisme et l'héritage sont des idées de programmation orientée objet. Les langages de programmation orientés objet populaires incluent Java, Python, C++, Lisp et Perl. Ils aident à la programmation en utilisant le paradigme des classes et des objets. Les autres langages qui prennent en charge les principes orientés objet sont Perl, Objective-C, Dart, Lisp, JavaScript et PHP.

Pourquoi les POO sont-ils préférés ?

Il existe de nombreuses raisons pour lesquelles les POO sont préférés. Les développeurs peuvent réutiliser le code orienté objet. Vous pouvez également utiliser l'héritage pour dupliquer des informations et des fonctionnalités précédemment créées. Cela fait gagner du temps, simplifie le code, économise de l'espace et facilite le codage sur nos doigts. Étant donné que la majeure partie du code se trouve à un seul endroit et qu'il est appelé et réutilisé, il est considérablement plus facile à entretenir. Alors que la plupart des langages offrent un certain niveau de sécurité, les langages orientés objet sont plus pratiques car l'encapsulation inclut la sécurité. Les langages de programmation orientés objet divisent un programme en objets et en classes. Ceci est avantageux car cela fournit à votre application un cadre plus modulaire.