In diesem Artikel werden hauptsächlich relevante Informationen zu Python-Klassendetails und Beispielen vorgestellt. Freunde, die sie benötigen, können sich auf
detaillierte Erläuterungen zu Python-Klassen
beziehen
Klasse
1. Eine Klasse ist eine Datenstruktur, die zum Erstellen von Instanzen verwendet werden kann. (Im Allgemeinen kapselt eine Klasse Daten und Methoden, die für diese Daten verwendet werden können)
2. Python-Klassen sind aufrufbare Objekte, also Klassenobjekte
3. Klassen werden normalerweise auf der obersten Ebene eines Moduls definiert, sodass Klasseninstanzen überall in der Quellcodedatei erstellt werden können, wo die Klasse definiert ist.
4. Instanzinitialisierung
Instanz = KlasseName(args....)
Eine Klasse kann beim Instanziieren zwei spezielle Methoden verwenden, init und del.
class ClassName(base):
'class documentation string' #类文档字符串
class suite #类体
Nach dem Login kopieren
Basis: Eine Superklasse ist eine Menge von einer oder mehreren übergeordneten Klassen Erben 🎜>
Der Klassenkörper kann Folgendes enthalten: Deklarationsanweisungen, Klassenmitgliedsdefinitionen, Daten- Attribute
, Methoden
Wenn in der keine Vererbungsbeziehung besteht Klasse, es werden keine Klammern bereitgestellt. Die Klassenanweisung „base
class FirstClass():
spam = 30 #类数据属性
def display(self): #类方法
print self.spam
x = FirstClass() #创建类实例
x.display() #方法调用
>>> 30
dir(FirstClass)
>>> ['doc', 'module', 'display', 'spam']
Nach dem Login kopieren
“ ähnelt def, bei dem es sich um ausführbaren Code handelt, der erst dann erstellt wird, wenn die Klasse vorhanden ist Anweisung wird ausgeführt
Innerhalb der Klassenanweisung erstellt jede Zuweisungsanweisung Klassenattribute Jedes Instanzobjekt erbt die Attribute der Klasse und Holen Sie sich einen eigenen Namensraum
Python-Klassenmethoden und -Aufrufe
Die in der Instanz (Objekt) enthaltenen Attribute
kann als Attribute von: Methode Datenattribute bezeichnet werden. In OOP sind Instanzen wie Datensätze mit „Daten“ und Klassen sind die Handler. Diese aufgezeichneten „Programme“
Aufrufmethoden über Instanzen sind äquivalent zu Aufrufmethoden der Klasse, zu der sie gehören, um die aktuelle Instanz zu verarbeiten. Im vorherigen Codebeispiel wird beispielsweise x.display() automatisch in FirstClass.display(x) konvertiert, d. h. die Methode der Klasse wird aufgerufen, um die Instanz x-
zu verarbeiten
. Daher muss jede Methode einen Selbstparameter haben, der die Bedeutung der aktuellen Instanz impliziert jede Instanz Python schreibt vor, dass Methoden nicht ohne Instanzen aufgerufen werden dürfen. Die Zuweisungsanweisung In der Klassenanweisung werden beispielsweise Klassenattribute erstellt. Im vorherigen Beispiel wird durch die Zuweisung eines Werts an den speziellen Parameter self, der an die Methode in der Klassenmethode übergeben wird, eine Instanz erstellt Attribut
- Wenn der Python-Konstruktor
eine Instanz erstellt, ruft Python automatisch die Init-Methode in der Klasse auf, um Attribute für die Instanz unsichtbar bereitzustellen . Die Init-Methode heißt Konstruktor
Wenn in der Klasse keine Init-Methode definiert ist, wird die Instanz zunächst als einfache Instanz erstellt Namensraum.
Der erste Parameter von init muss self sein, und die self - Variable
wird verwendet, um auf die Instanz zu verweisen, an die die Methode in der Klasseninstanzmethode gebunden ist. Da bei jedem Methodenaufruf immer eine Instanz einer Methode als erstes Argument übergeben wird, wurde self als Darstellung der Instanz ausgewählt. Sie müssen self in die Methodendeklaration einfügen, Sie können die Methode jedoch auch ohne Instanz (self) verwenden. Wenn Sie self in Ihrer Methode nicht verwenden, sollten Sie die Erstellung einer regulären
Funktion in Betracht ziehen, es sei denn, Sie haben einen bestimmten Grund. Schließlich verwendet Ihr Methodencode keine Instanz und hat keine mit der Klasse verknüpfte Funktionalität, wodurch er eher wie eine reguläre Funktion aussieht. In anderen objektorientierten Sprachen könnte self so heißen.
-
init kann kein Objekt zurückgeben
Destruktor : del
-
Der Konstruktor
ist notwendig, aber der Destruktor kann oft ignoriert werden (der Python-Interpreter wird ihn selbst recyceln)-
class MyClass():
def init(self, name):
self.name = name
print 'My name is ' + self.name
def del(self):
print self.name + ' is dead.'
i1 = MyClass('Shaw')
>>> My name is Shaw
del i1
>>> Shaw id dead.
Nach dem Login kopieren
类的特殊属性
使用dir()或dict,查看类或实例的属性
doc:获取文档字符串
base:获取所有父类
module:类所在的模块
name:实例所属类的名字
Python类方法中可用的变量
实例变量:self.变量名
局部变量:方法内部创建的变量,可直接使用
静态变量:类中定义的变量。类名.变量名
全局变量:直接使用
继承
继承描述了基类的属性如何‘遗传'给派生类
子类可以继承他的基类的任何属性,包括数据属性和方法
一个未指定基类的类,其默认有一个叫object的基类
Python允许多重继承(可以继承多个父类)
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Instanzanalyse der Python-Klasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!