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égoriesclass Bird(object): have_feather = True way_of_reproduction = 'egg'
summer = Bird() print summer.way_of_reproduction
à 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é. ActionDans 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. Birdclass 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)
, 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
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 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.
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!