Verständnisfragen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

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
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

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".
Melewo
User
Beiträge: 320
Registriert: Mittwoch 3. Mai 2017, 16:30

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.
Bindl
User
Beiträge: 70
Registriert: Donnerstag 27. Oktober 2016, 11:48

Vielen Dank für die Aufklärung
Antworten