Maison  >  Article  >  développement back-end  >  Introduction aux concepts de base de Python orienté objet

Introduction aux concepts de base de Python orienté objet

高洛峰
高洛峰original
2017-03-17 16:30:581398parcourir

Python utilise des classes (class) et des objets (objet) pour effectuer une programmation orientée objet (POO).

L'objectif principal de l'orientation objet est d'améliorer la réutilisabilité des programmes. La raison pour laquelle nous nous sommes lancés si tôt dans la programmation orientée objet est que tout le concept de Python est basé sur les objets. Comprendre la POO est la clé pour poursuivre l’apprentissage de Python.

Ce qui suit est une compréhension de l'orientation objet, basée sur la classification.

Les objets similaires sont classés en catégories

Dans la cognition humaine, les choses sont classées en fonction de la similitude des

attributs et les catégories sont nommées. Par exemple, l’attribut commun des oiseaux est qu’ils ont des plumes et qu’ils produisent une progéniture en pondant des œufs. Tout oiseau particulier est basé sur le prototype d'un oiseau.

L'orientation objet simule le processus cognitif humain ci-dessus. Dans le langage Python, pour paraître cool, nous appelons les « choses » mentionnées ci-dessus des objets.

Définissons d'abord les oiseaux

class Bird(object):
    have_feather = True
    way_of_reproduction  = 'egg'
Nous définissons une catégorie (classe), qui est Bird. Dans le bloc d'instructions appartenant à cette analogie, nous définissons deux

variables , l'une est le fait d'avoir des plumes (have_feather) et l'autre est le mode de reproduction (way_of_reproduction). Ces deux variables correspondent aux attributs que nous venons de mentionner (). attributs). Nous n'expliquerons pas les parenthèses et leur contenu pour le moment, les marquant comme question 1.

Supposons que j'élève un poussin appelé Summer. C'est un objet et il appartient aux oiseaux. Utilisez la classe définie précédemment :

summer = Bird()
print summer.way_of_reproduction
Créez l'objet

à travers la première phrase , et expliquez que l'été est un objet dans la catégorie oiseau L'été a l'attribut de classe oiseau, et les attributs La référence est implémentée sous la forme d'objet.attribute (object.attribute).

Pauvre été, tu n'es qu'un œuf poilu, tellement raffiné.

Action

Dans la cognition quotidienne, lorsque nous identifions des catégories à travers des attributs, nous distinguons parfois des catégories en fonction de ce que cette chose peut faire. Par exemple, les oiseaux bougent. De cette manière, l’oiseau se distingue de la catégorie des maisons. Ces actions apporteront certains résultats, comme des mouvements conduisant à des changements de position.

Certains de ces attributs "

Comportement" sont des méthodes. En Python, les méthodes sont décrites en définissant des fonctions à l'intérieur de la classe.

Nous avons redéfini la catégorie des oiseaux. Bird
class Bird(object):
    have_feather = True
    way_of_reproduction = 'egg'
    def move(self, dx, dy):
        position = [0,0]
        position[0] = position[0] + dx
        position[1] = position[1] + dy
        return position
summer = Bird()
print 'after move:',summer.move(5,8)
ajoute un nouvel attribut de méthode

, qui est la méthode move qui représente le mouvement. (J'avoue que cette méthode est idiote. Vous pourrez définir une méthode plus intéressante après avoir lu la prochaine leçon) (Il y a un soi dans ses paramètres, ce qui est pour nous faciliter la référence à l'objet lui-même. Le méthode Le premier paramètre doit être soi, qu'il soit utilisé ou non. Le contenu sur soi sera développé dans la prochaine leçon)

Les deux autres paramètres, dx, dy, représentent la distance parcourue dans les directions x et y. . La méthode move renverra éventuellement la position calculée.

Lorsque nous avons finalement appelé la méthode move, nous n'avons passé que les deux paramètres dx et dy, et il n'était pas nécessaire de passer le paramètre self (car self est uniquement destiné à un usage interne).

Mon été peut s'enfuir.

Sous-catégories

Les catégories elles-mêmes peuvent être subdivisées en sous-catégories

Par exemple, les oiseaux peuvent être divisés en poules, oies sauvages et orioles.

En POO, nous exprimons le concept ci-dessus à travers

l'héritage

(héritage).

La classe Chicken nouvellement définie ajoute deux attributs : way_of_move, qui peuvent être trouvés dans KFC (possible_in_KFC)
class Chicken(Bird):
    way_of_move = 'walk'
    possible_in_KFC = True
class Oriole(Bird):
    way_of_move = 'fly'
    possible_in_KFC = False
summer = Chicken()
print summer.have_feather
print summer.move(5,8)

Lors de la définition de la classe, parenthèses Ici pour Bird. Cela montre que Chicken est une sous-classe de Bird, c'est-à-dire que Chicken hérite de Bird. Naturellement, Bird est la classe parente de Chicken. Le poulet bénéficiera de toutes les propriétés de Bird. Bien que j'aie seulement déclaré que summer est une classe de poulet, elle bénéficie des attributs de la classe parent par héritage (qu'il s'agisse de l'attribut de variable have_feather ou de l'attribut de méthode move)

La classe Oriole (Oriole) nouvellement définie est également hérite des oiseaux. Lorsque vous créez un objet loriot, l'objet possède automatiquement les propriétés de l'oiseau.

Grâce au système d'héritage, nous pouvons réduire les informations répétées et les déclarations répétées dans le programme. Si nous définissons deux classes séparément sans hériter des oiseaux, nous devons entrer les attributs des oiseaux dans les définitions respectivement des classes de poulet et de loriot. L'ensemble du processus peut devenir fastidieux, par conséquent, l'orientation objet améliore la réutilisabilité du programme.

(Retour à la question 1, l'objet entre parenthèses. Lorsque les parenthèses sont objet, cela signifie que cette classe n'a pas de classe parent (la fin))

Catégoriser diverses choses pour comprendre le monde. Nous pratiquons ce processus cognitif depuis nos ancêtres humains. L'orientation objet est conforme aux habitudes de pensée humaine. Ce qu'on appelle l'orientation processus, c'est-à-dire l'exécution d'une instruction avant d'exécuter la suivante, relève davantage de la pensée machine. Grâce à la programmation orientée objet, nous pouvons exprimer plus facilement des idées complexes dans notre réflexion.

Résumé

Catégoriser les choses en fonction des attributs (classer les objets en classes)

Une méthode est un attribut qui représente une action

Utiliser l'héritage pour illustrer Parent relation de classe classe-enfant. Les sous-classes possèdent automatiquement toutes les propriétés de la classe parent.

self représente un objet créé sur la base de la définition de la classe.

Créer un objet : object name = class name()

Référencer les attributs de l'objet : object.attribute


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn