using classes
MRAB
python at mrabarnett.plus.com
Thu Mar 12 07:54:29 EDT 2020
On 2020-03-12 10:54, joseph pareti wrote:
> The following code that uses a class 'Fahrzeug' and an inherited class
> 'PKW' runs correctly. However, if I use the 'super ' statement in in the
> PKW class, it ends with the following error message:
>
>
>
> *Traceback (most recent call last): File "erben_a.py", line 19, in
> <module> fiat = PKW("Fiat Marea",50,0) File "erben_a.py", line 11, in
> __init__ super(PKW, self).__init__()TypeError: __init__() missing 2
> required positional arguments: 'bez' and 'ge'*
>
> ----- CODE THAT WORKS -------
> class Fahrzeug:
> def __init__(self, bez, ge):
> self.bezeichnung = bez
> self.geschwindigkeit = ge
> def beschleunigen(self, wert):
> self.geschwindigkeit += wert
> def __str__(self):
> return self.bezeichnung + " " +str(self.geschwindigkeit) + " km/h"
> class PKW(Fahrzeug):
> def __init__(self, bez, ge, ins):
> Fahrzeug.__init__(self, bez, ge)
> self.insassen = ins
> def __str__(self):
> return Fahrzeug.__str__(self) + " " + str(self.insassen) + "
> Insassen"
> def einsteigen(self, anzahl):
> self.insassen += anzahl
> def aussteigen(self, anzahl):
> self.insassen -= anzahl
> fiat = PKW("Fiat Marea",50,0)
> fiat.einsteigen(3)
> fiat.aussteigen(1)
> fiat.beschleunigen(10)
> print(fiat)
>
> -----CODE THAT FAILS --------------
> class Fahrzeug:
> def __init__(self, bez, ge):
> self.bezeichnung = bez
> self.geschwindigkeit = ge
> def beschleunigen(self, wert):
> self.geschwindigkeit += wert
> def __str__(self):
> return self.bezeichnung + " " +str(self.geschwindigkeit) + " km/h"
> class PKW(Fahrzeug):
> def __init__(self, bez, ge, ins):
> *super(PKW, self).__init__()*
> self.insassen = ins
> def __str__(self):
> return Fahrzeug.__str__(self) + " " + str(self.insassen) + "
> Insassen"
> def einsteigen(self, anzahl):
> self.insassen += anzahl
> def aussteigen(self, anzahl):
> self.insassen -= anzahl
> fiat = PKW("Fiat Marea",50,0)
> fiat.einsteigen(3)
> fiat.aussteigen(1)
> fiat.beschleunigen(10)
> print(fiat)
>
>
The traceback tells you what the problem is. The line should be:
super(PKW, self).__init__(bez, ge)
More information about the Python-list
mailing list