Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist Klasse in Python?

Was ist Klasse in Python?

silencement
silencementOriginal
2019-06-27 09:22:4313280Durchsuche

Was ist Klasse in Python?

Es gibt zwei wichtige Konzepte im objektorientierten Programmierprozess: Klasse und Objekt (Objekt, auch Instanz genannt), wobei eine Klasse eine bestimmte Menge an Abstraktionen darstellt Objekte können als ein bestimmtes Konzept verstanden werden; das Objekt ist eine konkrete Entität. In diesem Sinne handelt es sich bei dem, was wir im täglichen Leben als Menschen bezeichnen, tatsächlich um menschliche Objekte, nicht um Menschen.

Die einfache Syntax zum Definieren einer Klasse in Python lautet wie folgt:

class 类名:
    执行语句...
    零个到多个类变量...
    零个到多个方法...

Der Klassenname muss nur ein gültiger Bezeichner sein, aber dies erfüllt nur die grammatikalischen Anforderungen von Python: wenn ja Vom Programm aus lesbar. Aus praktischer Sicht muss der Klassenname von Python durch ein oder mehrere aussagekräftige Wörter verkettet werden. Der erste Buchstabe jedes Wortes wird groß geschrieben, und die anderen Buchstaben sind alle kleingeschrieben. Verwenden Sie keine Trennzeichen zwischen den Wörtern.

Nach der obigen Definition zu urteilen, ähnelt die Klassendefinition von Python ein wenig einer Funktionsdefinition. Sie beginnen alle mit einem Doppelpunkt (:) als Klassenkörper und verwenden den einheitlich eingerückten Teil als Klassenkörper. Der Unterschied besteht darin, dass Funktionsdefinitionen das Schlüsselwort def verwenden, während Klassendefinitionen das Schlüsselwort class verwenden.

Die Klassendefinition von Python besteht aus einem Klassenkopf (der sich auf das Klassenschlüsselwort und den Klassennamen bezieht) und einem einheitlich eingerückten Klassenkörper. Die beiden wichtigsten Mitglieder im Klassenkörper sind Klassenvariablen und Methoden. Wenn für die Klasse keine Klassenvariablen und Methoden definiert sind, entspricht die Klasse einer leeren Klasse. Wenn die leere Klasse keine anderen ausführbaren Anweisungen erfordert, kann die Pass-Anweisung als Platzhalter verwendet werden. Beispielsweise ist die folgende Klassendefinition zulässig:

class Empty:
    pass

Im Allgemeinen haben leere Klassen keine große praktische Bedeutung.

Die Definitionsreihenfolge der Mitglieder in der Klasse hat keine Auswirkung und die Mitglieder können sich gegenseitig aufrufen.

Die beiden wichtigsten Mitglieder einer Python-Klasse sind Variablen und Methoden. Klassenvariablen gehören zur Klasse selbst und werden verwendet, um die in der Klasse selbst enthaltenen Zustandsdaten zu definieren, während Instanzvariablen zu den Objekten der Klasse gehören Klasse, wird verwendet, um die im Objekt enthaltenen Zustandsdaten zu definieren: Methoden werden verwendet, um das Verhalten oder die Funktionsimplementierung des Objekts dieser Klasse zu definieren.

Python ist eine dynamische Sprache, daher können die in ihren Klassen enthaltenen Klassenvariablen dynamisch hinzugefügt oder gelöscht werden (wenn das Programm neuen Variablen im Klassenkörper Werte zuweist, fügt es Klassenvariablen hinzu) und die Das Programm kann auch überall Klassenvariablen hinzufügen. Das Programm kann Klassenvariablen vorhandener Klassen über die del-Anweisung löschen.

In ähnlicher Weise können auch Instanzvariablen von Python-Objekten dynamisch hinzugefügt oder gelöscht werden (solange einer neuen Instanzvariablen ein Wert zugewiesen wird, wird die Instanzvariable hinzugefügt), sodass das Programm Instanzvariablen zu seinen eigenen hinzufügen kann Objekte überall; Programminstanzvariablen vorhandener Objekte können über die del-Anweisung gelöscht werden.

In einer Klasse definierte Methoden sind standardmäßig Instanzmethoden. Die Methode zum Definieren einer Instanzmethode ist grundsätzlich dieselbe wie die zum Definieren einer Funktion, mit der Ausnahme, dass der erste Parameter der Instanzmethode an den Aufrufer gebunden ist der Methode (der Klasseninstanz), daher sollten Instanzmethoden mindestens einen Parameter definieren, der normalerweise den Namen self trägt.

Hinweis: Der erste Parameter der Instanzmethode muss nicht „self“ heißen. Tatsächlich kann er als beliebiger Parametername bezeichnet werden. Es ist lediglich eine Konvention, den Parameter „self“ zu benennen, der am besten lesbar ist .

In der Instanzmethode gibt es eine spezielle Methode: __init__, diese Methode wird als Konstruktormethode bezeichnet. Die Konstruktormethode wird verwendet, um ein Objekt dieser Klasse zu erstellen, und Python gibt ein Objekt dieser Klasse zurück, indem es die Konstruktormethode aufruft (keine Notwendigkeit, new zu verwenden).

Viele Methoden in Python, die mit einem doppelten Unterstrich beginnen und mit einem doppelten Unterstrich enden, haben spezielle Bedeutungen. Diese speziellen Methoden werden später in diesem Tutorial ausführlich vorgestellt.

Der Konstruktor ist die grundlegende Möglichkeit für eine Klasse, Objekte zu erstellen, daher bietet Python auch eine Funktion: Wenn der Entwickler keinen Konstruktor für die Klasse definiert, definiert Python automatisch einen Konstruktor für die Klasse, die ihn enthält nur ein self Der Standardkonstruktor für Parameter.

Das folgende Programm definiert eine Person-Klasse:

class Person :
    '这是一个学习Python定义的一个Person类'
    # 下面定义了一个类变量
    hair = 'black'
    def __init__(self, name = 'Charlie', age=8):
        # 下面为Person对象增加2个实例变量
        self.name = name
        self.age = age
    # 下面定义了一个say方法
    def say(self, content):
        print(content)

Der obige Person-Klassencode definiert einen Konstruktor. Der Konstruktor hat nur einen speziellen Methodennamen: __init__, den ersten Teil von method Ein Parameter ist ebenfalls self und an das vom Konstruktor initialisierte Objekt gebunden.

Das obige ist der detaillierte Inhalt vonWas ist Klasse in Python?. 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