using classes

joseph pareti joepareti54 at gmail.com
Thu Mar 12 06:54:51 EDT 2020


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)


-- 
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