Heim > Backend-Entwicklung > Python-Tutorial > Einführung in die Verwendung des Konstruktors

Einführung in die Verwendung des Konstruktors

PHP中文网
Freigeben: 2017-06-21 16:36:14
Original
2439 Leute haben es durchsucht

Klasse bezieht sich auf: eine Definition, die eine Sache beschreibt, die ein abstraktes Konzept ist
Instanz bezieht sich auf: ein bestimmtes Individuum dieser Art von Sache, das eine bestimmte Sache ist

Zum Beispiel:
„Person“ ist eine Klasse. „Zhang San“ ist ein konkretes Beispiel für Menschen

Das Gleiche gilt für die Programmierung. Wenn Sie sie verwenden müssen, verwenden Sie die Definition von „Klasse“. konkretes Beispiel.

Die Verwendung der Definition einer Klasse zum Erstellen einer Instanz wird als Instanziierung einer Klasse bezeichnet.
Der Instanziierungsprozess besteht darin, den Konstruktor der Klasse aufzurufen, um die Datenzuweisung der Instanz abzuschließen

Das Folgende ist ein Beispiel für eine Waschmaschine:

Dies ist eine einfache manuelle Waschmaschine mit Instanziierung Waschmaschinenklasse:

 1 #class Washer: 2 class Washer:#定义一个Washer类 3  4     def __init__(self): #这是定义类的构造函数,也是一个特殊的实例方法 5         self.water=0   #实例的属性(变量) 6         self.scour=0 7  8     def add_water(self,water):#实例的方法(函数),可以接受实例化后传过来的参数给类内实例变量,又因为实例继承了类的属性和方法,所以 9     #相当于传递给了类的实例化对象的实例变量10         print('Add water:',water)11         self.water=water#在类的方法内引用实例变量用 self.属性名12 13     def add_scour(self,scour):14         self.scour=scour15         print('Add scour:',scour)16 17     def start_wash(self):18         print('Start wash...')19         20 if __name__=='__main__':21     w=Washer()#类的实例化22     w.add_water(10)#传递参数到实例变量23     w.add_scour(2)24     w.start_wash()
Nach dem Login kopieren

Ausführungsergebnis:

In der Klasse definierte Instanzmethoden benötigen manuell definiert werden Fügen Sie den Parameter self hinzu (wie in Zeile 4). Sie müssen den Parameter self jedoch nicht manuell hinzufügen, wenn Sie diese Methode nach der Instanziierung der Klasse aufrufen. Python fügt ihn automatisch hinzu, wie in Zeile 22.

Die Instanziierungsmethode ist w=Washer(). Es ist ersichtlich, dass nach der Klasse Klammern hinzugefügt werden müssen.

Außerhalb der Klasse können Sie die in der Klasse definierte Instanzmethode mit dem Instanznamen.Methodennamen () aufrufen, zum Beispiel

w.add_scour(2),必要的时候加上参数。
Nach dem Login kopieren


Ändern wir das Programm und machen es zu einer halbautomatischen Waschmaschine, das heißt, innerhalb der Klasse rufen sich die Methoden gegenseitig auf.

washa.py:

 1 class Washer: 2  3     def __init__(self): 4         self.water=0 5         self.scour=0 6  7     def set_water(self,water): 8         self.water=water 9         self.add_water()10 11     def set_scour(self,scour):12         self.scour=scour13         self.add_scour()#在类内调用函数,用 self.方法名14 15     def add_water(self):16         print('Add water:',self.water)17 18     def add_scour(self):19         print('Add scour:',self.scour)20 21     def start_wash(self):22         print('Start wash...')23         24 if __name__=='__main__':25     w=Washer()26     w.set_water(10)27     w.set_scour(2)28     w.start_wash()29
Nach dem Login kopieren

kann auch geändert werden in:

 1 class Washer: 2  3     def __init__(self): 4         self.water=0 5         self.scour=0 6  7     def set_water(self,water): 8         self.water=water        
 9 10     def set_scour(self,scour):11         self.scour=scour        
12 13     def add_water(self):14         print('Add water:',self.water)15 16     def add_scour(self):17         print('Add scour:',self.scour)18 19     def start_wash(self):20         self.add_water()21         self.add_scour()22         print('Start wash...')23         24 if __name__=='__main__':25     w=Washer()26     w.set_water(10)27     w.set_scour(2)28     w.start_wash()
Nach dem Login kopieren

Laufergebnis:


Durch die folgenden Änderungen können Benutzer Kleidung waschen, ohne die Wasser- und Waschmittelmenge der Waschmaschine einzustellen:

 1 class Washer: 2  3     def __init__(self): 4         self.water=10#将实例属性修改为默认的标准洗衣程序需要的量 5         self.scour=2 6  7     def set_water(self,water): 8         self.water=water        
 9 10     def set_scour(self,scour):11         self.scour=scour        
12 13     def add_water(self):14         print('Add water:',self.water)15 16     def add_scour(self):17         print('Add scour:',self.scour)18 19     def start_wash(self):20         self.add_water()21         self.add_scour()22         print('Start wash...')23         24 if __name__=='__main__':25     w=Washer()26 ##    w.set_water(10) #这两行代码注释掉,代表用户不必设置水和洗涤剂量27 ##    w.set_scour(2)28     w.start_wash()29
Nach dem Login kopieren

Aber in diesem Fall können nur 10L Wasser und 2L Waschmittel hinzugefügt werden, was nicht gut ist und verbessert werden muss. Verwenden Sie den Konstruktor.


 1 class Washer: 2  3     def __init__(self,water=10,scour=2): 4         self.water=water 5         self.scour=scour 6  7     def set_water(self,water): 8         self.water=water        
 9 10     def set_scour(self,scour):11         self.scour=scour        
12 13     def add_water(self):14         print('Add water:',self.water)15 16     def add_scour(self):17         print('Add scour:',self.scour)18 19     def start_wash(self):20         self.add_water()21         self.add_scour()22         print('Start wash...')23         24 if __name__=='__main__':25     w=Washer()26     w.start_wash()27 28     wb=Washer(100,10)29     wb.start_wash()30 31     wc=Washer(100,10)32     wc.set_water(50)33     wc.set_scour(5)34     wc.start_wash()35 36     37 38     39
Nach dem Login kopieren

Laufergebnis:

Der Konstruktor kann das Instanzobjekt beim Instanziieren der Klasse umfangreicher machen und hat die Funktion, verschiedene Instanztypen zu instanziieren.

Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung des Konstruktors. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage