Maison >développement back-end >Tutoriel Python >Comment faire de la programmation orientée objet en python
La programmation orientée objet est simplement basée sur l'utilisation de classes et d'objets. Tous les codes sont implémentés à travers des classes et des objets. La programmation est une programmation orientée objet !
Trois fonctionnalités majeures de l'orientation objet : encapsulation, héritage, polymorphisme
Créez d'abord une classe
#使用class创建一个School类,类中有个student方法 class School: def student(self): pass a1=School()
1 Encapsulation
1. Encapsulation : encapsulez d'abord certains contenus dans un endroit, puis appelez
class School: def __init__(self,name,age): #构造方法,创建对象是执行 self.name=name self.age=age#创建对象a1,a2a1=School("zhangsan",18) a2=School("lisi",18)
si nécessaire. Le code ci-dessus implémente la fonction d'encapsulation et encapsule le nom et l'âge respectifs dans les attributs name et age de self. équivalent à être encapsulé dans les objets a1 et a2. Les fonctions définies dans la classe
sont appelées méthodes, et les fonctions avec __init__ sont appelées constructeurs, qui seront automatiquement exécutées lors de la création des objets a1 et a2.
2. Appel : Il existe deux façons d'appeler, l'appel direct via l'objet et l'appel indirect via soi
Appel direct via l'objet
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age))#创建对象a1,a2a1=School("zhangsan",18) a2=School("lisi",18) print a1.name,a1.age print a2.name,a2.age#执行结果: zhangsan 18 lisi 18
Appel indirect via soi
🎜>class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age)) #创建对象a1,a2 a1=School("zhangsan",18) a2=School("lisi",18) #执行类中的方法时,通过self间接调用被封装的内容 a1.student() a2.student() #执行结果: #name:zhangsan,age:18 #name:lisi,age:18
2. Héritage
1. Héritage : les classes dérivées (sous-classes) peuvent hériter des méthodes des classes de base (classes parentes), de sorte que La sous-classe n'a besoin que d'hériter de la classe parent sans avoir à implémenter chaque méthode une par une
Écrivez une autre classe entre parenthèses après le nom de la classe pour indiquer qu'elle hérite de cette classe
class School: def __init__(self,name,age): self.name=name self.age=age def student(self): print("name:%s,age:%s"%(self.name,self.age)) def classroom(self): print("%s去教室"%self.name) class SchoolA(School): #SchoolA继承School def __init__(self,name): self.name=name class SchoolB(SchoolA): #SchoolB继承SchoolA def __init__(self,name): self.name=name #创建对象a1 a1=SchoolA("zhangsan") a1.classroom() #创建对象a2 a2=SchoolB("lisi") a2.classroom() #执行结果: # zhangsan去教室 # lisi去教室
Dans ce qui précède code we Comme vous pouvez le voir, il n'y a pas de méthode de classe dans SchoolA et SchoolB, mais comme SchoolB hérite de SchoolA et SchoolA hérite de School, ils peuvent
appeler la méthode de classe dans School après avoir créé l'objet.
2. Héritage multiple
En python, une classe peut également hériter de plusieurs classes. Lors de l'héritage de plusieurs classes, il existe deux façons de trouver des fonctions dans la classe
Profondeur d'abord. : Lorsque la classe est une classe classique, en cas d'héritage multiple, elle sera recherchée d'abord en profondeur
En largeur d'abord : Lorsque la classe est une classe de nouveau style, en cas d'héritage multiple , il sera recherché en largeur
(en python3.
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!