Python: print() wird nicht angezeigt?

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

(1)

Ja, die Einrückung ist Teil der Fehlers.

Die print()-Anweisungen werden nicht ausgeführt, weil sie gar nicht aufgerufen werden. Sie stehen nämlich in der Definition von __init__, und auch __init__ wird nicht aufgerufen, weil dazu die Auto()-Anweisungen aufgerufen werden müßten, und auch die stehen wegen der Einrückung dort, wo sie nicht aufgerufen werden.

Stelle also die Auto()- und die print()-Anweiungen uneingerückt an den linken Rand des Codes. Dann stehen sie nicht mehr in der Definition von __init__, sondern hinter ihr.

(2)

Noch etwas muß geändert werden: Es muß __init__ heißen, nicht _init_, mit doppelten Unterstrichen vorne und hinten.

Hallo, habe das Problem am Ende selber lösen können.

mein _init_ hatte jeweils pro Seite einen Unterstrich zu wenig.

Dein Einrückung von auto1... bis zum Ende muss direkt zu Beginn platziert sein.

Anbei die Lösung nun:

Bild zum Beitrag

Woher ich das weiß:eigene Erfahrung
 - (Computer, Technik, Technologie)

Die Zeilen mit auto1, auto2 und auto3 sowie print müssen aus der Klasse raus - sprich ganz an den linken rand und nicht eingerückt!

Eine Klasse ist ein Bauplan - man muss erst eine Instanz erzeugen damit etwas passiert.

Dies versuchst du mit den zuvor genannten Zeilen allerdings ist dein Code so formatiert, dass das Instanzieren (auto1, auto2 und auto3) und die Ausgabe (print) ein Teil der Klasse, genauer gesagt ein Teil der Konstruktor-Funkion __init__ (mit 2 Unterstrichen!) sind und somit niemals aufgerufen werden.

Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)
Kreatin 
Fragesteller
 18.06.2019, 16:45

Danke dafür, konnte es bereits lösen und wurde von mir zstl. als Kommentar gepostet. Dennoch danke.

0
Mark Berger  18.06.2019, 16:46
@Kreatin

Frei nach Bud Spencer:

Rück das Dings mehr nach Links und mit einem mal das Dings!
0

1) Da fehlen wohl noch zwei Unterstriche: __init__, schließlich handelt es sich um den Konstruktor der Klasse.

2) Du solltest noch ein Auto erzeugen. Die Klasse stellt vorerst nur einen Bauplan dar.

someAuto = Auto("irgendeineMarke", "irgendeinModell", 1234, 5678)

Diese Zeile beginnt auf selber horizontaler Höhe, wie das class-Keyword.

3) Die erstellten Auto-Instanzen im Konstruktor sollten wohl eher außerhalb der Klasse erstellt werden.

Anbei einfach ein Bild:

Bild zum Beitrag

 - (Computer, Technik, Technologie)