Detaillierte Erläuterung der Instanzanalyse der Python-Klasse

高洛峰
Freigeben: 2017-03-26 10:04:12
Original
1811 Leute haben es durchsucht

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!

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