Heim Backend-Entwicklung Python-Tutorial Detaillierte Erläuterung der Instanzanalyse der Python-Klasse

Detaillierte Erläuterung der Instanzanalyse der Python-Klasse

Mar 26, 2017 am 10:04 AM

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

  1. Instanz = KlasseName(args....)

  2. Eine Klasse kann beim Instanziieren zwei spezielle Methoden verwenden, init und del.

 class ClassName(base):
'class documentation string' #类文档字符串
 class suite        #类体
Nach dem Login kopieren
  1. Basis: Eine Superklasse ist eine Menge von einer oder mehreren übergeordneten Klassen Erben 🎜>

  2. Der Klassenkörper kann Folgendes enthalten: Deklarationsanweisungen, Klassenmitgliedsdefinitionen, Daten
  3. Attribute

    , Methoden

  4. 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
  1. 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
  2. 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.
  3. init kann kein Objekt zurückgeben

    Destruktor
  4. : 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.变量名

  • 局部变量:方法内部创建的变量,可直接使用

  • 静态变量:类中定义的变量。类名.变量名

  • 全局变量:直接使用

继承

继承描述了基类的属性如何‘遗传'给派生类

  1. 子类可以继承他的基类的任何属性,包括数据属性和方法

  2. 一个未指定基类的类,其默认有一个叫object的基类

  3. 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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Apr 01, 2025 pm 05:09 PM

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Apr 01, 2025 pm 11:15 PM

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Was sind einige beliebte Python -Bibliotheken und ihre Verwendung? Was sind einige beliebte Python -Bibliotheken und ihre Verwendung? Mar 21, 2025 pm 06:46 PM

In dem Artikel werden beliebte Python-Bibliotheken wie Numpy, Pandas, Matplotlib, Scikit-Learn, TensorFlow, Django, Flask und Anfragen erörtert, die ihre Verwendung in wissenschaftlichen Computing, Datenanalyse, Visualisierung, maschinellem Lernen, Webentwicklung und h beschreiben

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Apr 01, 2025 pm 10:51 PM

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Apr 02, 2025 am 07:18 AM

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Apr 01, 2025 pm 11:18 PM

Wie erstellt in Python ein Objekt dynamisch über eine Zeichenfolge und ruft seine Methoden auf? Dies ist eine häufige Programmieranforderung, insbesondere wenn sie konfiguriert oder ausgeführt werden muss ...

Was sind reguläre Ausdrücke? Was sind reguläre Ausdrücke? Mar 20, 2025 pm 06:25 PM

Regelmäßige Ausdrücke sind leistungsstarke Tools für Musteranpassung und Textmanipulation in der Programmierung, wodurch die Effizienz bei der Textverarbeitung in verschiedenen Anwendungen verbessert wird.

See all articles