using classes

joseph pareti joepareti54 at gmail.com
Thu Mar 12 10:25:39 EDT 2020


thank you, that fixes it. I also noticed that both statements work:

         super(PKW, self).__init__(bez,ge)

or

       super().__init__(bez,ge)

Am Do., 12. März 2020 um 12:58 Uhr schrieb MRAB <python at mrabarnett.plus.com
>:

> 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)
> --
> https://mail.python.org/mailman/listinfo/python-list
>


-- 
Regards,
Joseph Pareti - Artificial Intelligence consultant
Joseph Pareti's AI Consulting Services
https://www.joepareti54-ai.com/
cell +49 1520 1600 209
cell +39 339 797 0644


More information about the Python-list mailing list