"Warum gibt dieser Code 13 aus?

2 Antworten

obj.__dict__ besteht aus 3 Elementen (quantity, bags und price)

deshalb liefert len(obj.__dict__) die Zahl 3

quantity wird auf 10 gesetzt.

Und 10 +3 = 13

Nic14000 
Fragesteller
 13.12.2023, 12:52

du hast mir die arbeit gerettet danke

0

Dir wurde zwar schon geholfen, aber nochmal etwas genauer erklärt;

Die Klasse fruits hat ein Attribut namens price, das den Preis der Frucht angibt. Die __init__()-Methode der Klasse wird aufgerufen, wenn eine neue Instanz der Klasse erstellt wird. Diese Methode setzt das Attribut price auf den angegebenen Wert.

In der ersten Zeile des Codes wird eine Instanz der Klasse fruits mit dem Preis 50 erstellt. Die Variable obj wird verwendet, um auf diese Instanz zu verweisen.

in der zweiten Zeile wird dem Attribut quantity der obj-Instanz der Wert 10 zugewiesen.

In der dritten Zeile wird dem Attribut bags der obj-Instanz der Wert 2 zugewiesen.

In der letzten Zeile wird die Summe von obj.quantity und len(obj.__dict__) ausgegeben.

obj.quantity enthält den Wert des Attributs quantity der obj-Instanz, also 10.

len(obj.__dict__) gibt die Länge des Dictionaries obj.__dict__ zurück, also 3. Da ist also der fehler

Die Summe von 10 und 3 ist 13. Daher gibt der Code 13 aus.

Woher ich das weiß:Hobby – Programmierer