Seite 1 von 1

Verständnisfragen

Verfasst: Mittwoch 12. Juli 2017, 14:25
von Bindl
Hallo zusammen,

ich habe eine zu zwei Attribute.
Das haben wir in der Uni als Fragen bei einer Uni ob das folgende zulässig ist oder nicht.

Code: Alles auswählen

def B():
    rechnung = 1 + 2
    return rechnung

aaa = B()
aaa.dosomething()
aaa.method()
Das sind die Fehlermeldungen wenn ich es ausführen (einzeln) möchte:
AttributeError: 'int' object has no attribute 'dosomething'
AttributeError: 'int' object has no attribute 'method'

Gibt es .dosomething() und .method() überhaupt und wenn ja für welche Objekte denn?
Mir sind diese beiden nicht bekannt.

Vielen Dank schonmal

Re: Verständnisfragen

Verfasst: Mittwoch 12. Juli 2017, 14:48
von __deets__
Ok, den Preis fuer die unverstaendlichste Frage der Woche hast du schon mal.

Was du zeigst ist eine Funtion (def ...), deren Name der Konvention fuer Klassen entspricht (class CamelCase), und die du danach auch so verwendest - naemlich als ob du ein Objekt erzeugst, und darauf dann Methoden aufrufen willst.

Entweder muss also B eine Klasse werden (mit Methoden dosomething und method), ODER aber es bleibt Funktion, sollte aus Konventionsgruenden klein geschrieben werden, und ein Objekt zurueckgeben, welches eben diese Methoden hat.

Stattdessen gibt es aber ein integer-Objekt zurueck, und das hat natuerlich keine solchen Methoden. Es haette aber zB die Methode "bit_length".

Re: Verständnisfragen

Verfasst: Mittwoch 12. Juli 2017, 15:02
von Melewo
Bindl hat geschrieben:Gibt es .dosomething() und .method() überhaupt und wenn ja für welche Objekte denn?
Nein gibt es nicht, sind nur symbolisch als Platzhalter verwendete Bezeichner, für das, was Du selbst dafür definieren möchtest.

Re: Verständnisfragen

Verfasst: Mittwoch 12. Juli 2017, 15:32
von Bindl
Vielen Dank für die Aufklärung