Objektorientierte Programmierung basiert einfach auf der Verwendung von Klassen und Objekten. Alle Codes werden durch Klassen und Objekte implementiert.
Drei Hauptmerkmale der Objektorientierung: Kapselung, Vererbung, Polymorphismus
Erstellen Sie zunächst eine Klasse
#使用class创建一个School类,类中有个student方法 class School: def student(self): pass a1=School()
1. Kapselung
1. Kapselung: Kapseln Sie zuerst bestimmte Inhalte an einem Ort und rufen Sie dann bei Bedarf
class School: def __init__(self,name,age): #构造方法,创建对象是执行 self.name=name self.age=age#创建对象a1,a2a1=School("zhangsan",18) a2=School("lisi",18)
auf. Der obige Code implementiert die Funktion der Kapselung und kapselt den jeweiligen Namen und das Alter in die Namens- und Altersattribute von self entspricht der Einkapselung in die Objekte a1 und a2. Die in der Klasse
definierten Funktionen werden als Methoden bezeichnet, und die Funktionen mit __init__ werden als Konstruktoren bezeichnet, die beim Erstellen von a1- und a2-Objekten automatisch ausgeführt werden.
2. Aufrufen: Es gibt zwei Möglichkeiten zum Aufrufen: direkter Aufruf über das Objekt und indirekter Aufruf über sich selbst
Direkter Aufruf über das Objekt
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
Indirekter Aufruf über sich selbst
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. Vererbung
1. Abgeleitete Klassen (Unterklassen) können Methoden von Basisklassen (Elternklassen) erben, so dass Die Unterklasse muss nur die übergeordnete Klasse erben, ohne jede Methode einzeln implementieren zu müssen
Schreiben Sie eine weitere Klasse in Klammern nach dem Klassennamen, um anzuzeigen, dass sie diese Klasse erbt
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去教室
Oben code we Wie Sie sehen können, gibt es in SchoolA und SchoolB keine Classroom-Methode, aber da SchoolB SchoolA erbt und SchoolA School erbt, können sie
die Classroom-Methode in School aufrufen, nachdem sie das Objekt erstellt haben.
2. Mehrfachvererbung
In Python kann eine Klasse auch mehrere Klassen erben. Beim Erben mehrerer Klassen gibt es zwei Möglichkeiten, Funktionen in der Klasse zu finden
Tiefe zuerst : Wenn es sich bei der Klasse um eine klassische Klasse handelt, wird sie im Fall einer Mehrfachvererbung zuerst in der Tiefe durchsucht.
Breite zuerst: Wenn es sich bei der Klasse um eine Klasse im neuen Stil handelt, wird im Fall einer Mehrfachvererbung zuerst nach der Tiefe gesucht , wird nach der Breite zuerst gesucht
(in Python3.
Das obige ist der detaillierte Inhalt vonSo führen Sie objektorientierte Programmierung in Python durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!