Heim >Backend-Entwicklung >Python-Tutorial >So führen Sie objektorientierte Programmierung in Python durch

So führen Sie objektorientierte Programmierung in Python durch

silencement
silencementOriginal
2019-06-24 11:19:053019Durchsuche

So führen Sie objektorientierte Programmierung in Python durch

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

In Verbindung stehende Artikel

Mehr sehen