Objekte der Klasse unterstützen zwei Arten von Operationen: Attributreferenzen und Instanziierung
Attribut-Referenzen verwenden Sie die Standardsyntax, die für alle Attributreferenzen in Python verwendet wird: obj.name. Gültige Attributnamen sind alle Namen, die sich im Namensraum der Klasse befanden, als das Klassenobjekt erstellt wurde. Wenn die Klassendefinition also wie folgt aussähe:
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
dann MyClass.i
y MyClass.f
sind gültige Attributreferenzen, die eine ganze Zahl bzw. ein Funktionsobjekt zurückgeben. Klassenattribute können auch zugewiesen werden, so können Sie den Wert von MyClass.i
durch Zuweisung. __doc__
ist ebenfalls ein gültiges Attribut, das den zur Klasse gehörenden Docstring zurückgibt: "Eine einfache Beispielklasse".
Instanziierung von Klassen verwendet die Funktionsschreibweise. Tun Sie einfach so, als sei das Klassenobjekt eine parameterlose Funktion, die eine neue Instanz der Klasse zurückgibt. Zum Beispiel:
x = MyClass()
Le site Instanziierung Operation ("Aufruf" eines Klassenobjekts) erzeugt ein leeres Objekt. Viele Klassen möchten Objekte erzeugen, deren Instanzen an einen bestimmten Anfangszustand angepasst sind. Daher kann eine Klasse eine spezielle Methode namens __init__()
etwa so:
def __init__(self):
self.data = []
Wenn eine Klasse eine __init__()
Methode wird bei der Instanziierung der Klasse automatisch __init__()
für die neu erstellte Klasseninstanz. In diesem Beispiel kann also eine neue, initialisierte Instanz erhalten werden durch:
x = MyClass()
Natürlich ist die __init__()
Methode kann Argumente für mehr Flexibilität enthalten. In diesem Fall werden die Argumente, die dem Klasseninstanziierungsoperator übergeben werden, an __init__()
. Zum Beispiel,
class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart
x = Complex(3.0, -4.5)
x.r, x.i
Entnommen aus dem offiziellen Dokumentation was mir letztendlich am meisten geholfen hat.
Hier ist mein Beispiel
class Bill():
def __init__(self,apples,figs,dates):
self.apples = apples
self.figs = figs
self.dates = dates
self.bill = apples + figs + dates
print ("Buy",self.apples,"apples", self.figs,"figs
and",self.dates,"dates.
Total fruitty bill is",self.bill," pieces of fruit :)")
Wenn Sie eine Instanz der Klasse Bill erstellen:
purchase = Bill(5,6,7)
Sie erhalten:
> Buy 5 apples 6 figs and 7 dates. Total fruitty bill is 18 pieces of
> fruit :)