Maison >développement back-end >Tutoriel Python >[Apprentissage Python] Programmation orientée objet
La programmation orientée processus considère un programme informatique comme une série d'ensembles de commandes, c'est-à-dire l'exécution séquentielle d'un ensemble de fonctions . Afin de simplifier la programmation, les fonctions orientées processus continuent d'être divisées en sous-fonctions, c'est-à-dire que les grandes fonctions sont découpées en petites fonctions pour réduire la complexité du système.
Python et Java sont tous deux des langages orientés objet. Caractéristiques de la programmation orientée objet Encapsulation, héritage et polymorphisme des données
1 Classes et instances
Les concepts les plus importants de la programmation orientée objet sont les classes et les instances ), vous devez vous rappeler qu'une classe est un modèle abstrait, comme la classe Student, et que les instances sont des "objets" spécifiques créés sur la base de la classe. Chaque objet a les mêmes méthodes, mais leurs données peuvent être différentes.
En python, le mot-clé class est également utilisé pour définir une classe. Class est suivi du nom de la classe, qui doit être en majuscule au début. Les parenthèses qui le suivent indiquent de quelle classe elle hérite, c'est-à-dire sa classe parent. .
class Student(object): pass
On peut librement lier des attributs à cette variable
>>>nick.name = 'Liu Ling Hao' >>>nick.name 'Liu Ling Hao'
et les différentes fonctions définies plus tard sont des méthodes. Pour résumer, Objet = Attribut + Méthode
Puisque les classes peuvent agir comme des modèles, lors de la création d'une instance, nous pouvons forcer le remplissage de certains attributs qui, selon nous, doivent être liés. À ce stade, vous devez utiliser la méthode __init__ plus spéciale. (Il y a deux traits de soulignement avant et après int)
Le premier paramètre de la méthode __init__ est toujours self, qui représente l'instance créée elle-même.
class Student(object): def __init__(self, name, score): self.name = name self.score = scor >>> bart = Student('Bart Simpson', 59) >>> bart.name 'Bart Simpson' >>> bart.score 59
Lorsque vous disposez de la méthode __init__, vous ne pouvez pas transmettre de paramètres vides lors de la création d'une instance. Vous devez transmettre des paramètres qui correspondent à la méthode __init__
2. Encapsulation, héritage et polymorphisme.
Une caractéristique importante de la programmation orientée objet est l'encapsulation des données.
Tout comme le nom et le score dans l'exemple ci-dessus, nous pouvons y accéder directement via les fonctions définies à l'intérieur de la classe. Par exemple, nous pouvons ajouter une donnée ou trier une liste. Nous pouvons l'implémenter, mais nous ne le faisons pas. Je ne le sais pas. L'intérieur est réalisé grâce à la façon dont il est ajusté.
Lorsque nous définissons une classe, elle peut hériter d'une classe existante. La nouvelle classe est appelée une sous-classe (Subclass), et la classe héritée est appelée une classe de base ou une classe parent ou super. classe (classe de base, super classe).
L'avantage de l'héritage est que vous obtenez toutes les fonctions de la classe parent. Pour les sous-classes, vous pouvez continuer à écrire sur la base de la classe parent, ce qui est plus pratique
class Person(object): def idea(self): print('study is happy')class Liu(Person): pass liu =Liu()liu.idea study is happyBien sûr la sous-classe Si une classe a la même méthode que la classe parent, elle remplacera automatiquement le Polymorphisme de la classe parent : Différents objets répondent à des actions différentes pour la même méthode
>>>class Nick1: def name(self): print("我是1") >>>class Nick2: def name(self): print("我是2") >>>a = Nick1() >>>b = Nick2() >>>a.name 我是1 >>>b.name 我是2Bien que les noms de fonctions utilisés soient les mêmes, mais l'implémentation est différente.
def run(animal): animal.run() animal.run() >>> run(Animal()) Animal is running... Animal is running... >>> run_twice(Dog()) Dog is running... Dog is running...L'avantage du polymorphisme est que lorsque l'on a besoin de passer en Chien ou d'autres animaux, il suffit de recevoir le type Animal, car les Chiens sont tous de type Animal, et ensuite fonctionner selon l'Animal tapez C'est tout. Étant donné que le type Animal a une méthode run(), tout type transmis, tant qu'il s'agit d'une classe ou d'une sous-classe Animal, appellera automatiquement la méthode run() du type réel. [Cours recommandé :
Tutoriel vidéo Python]
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!