Seite 1 von 1

for i in XYZ: welche Methoden muss XYZ haben?

Verfasst: Mittwoch 14. Oktober 2015, 14:11
von NoPy
gemäß Duck- Typing müsste ich doch eine Klasse schreiben können á la

Code: Alles auswählen

class LustigeElementsammlung(object):
  def __WasAuchImmer__(self,Parameterliste):
    ...

LustigeElemente = LustigeElementsammlung()
for i in LustigeElemente:
  i.x = 10
Steht so etwas irgendwo? Oder auch Klassen, die wie ein Dictionary oder ein Array benutzt werden können.

NoPy

Re: for i in XYZ: welche Methoden muss XYZ haben?

Verfasst: Mittwoch 14. Oktober 2015, 14:28
von Sirius3
Sowas steht in der Dokumentation.

Re: for i in XYZ: welche Methoden muss XYZ haben?

Verfasst: Mittwoch 14. Oktober 2015, 14:35
von BlackJack
@NoPy: Da gibt's mehere Möglichkeiten. Eine `__iter__()`-Methode die einen Iterator/Generator liefert, oder eine `__getitem__()`-Methode die Schlüssel von 0 an aufwärts nimmt und bei einem zu grossen Index eine `IndexError`-Ausnahme auslöst.

Für Abbildungen zum Beispiel `__getitem__()` und halt alles andere was man an Operationen unterstützen möchte. Diese ”magischen” Methoden stehen alle in der Python-Dokumentation.

Re: for i in XYZ: welche Methoden muss XYZ haben?

Verfasst: Mittwoch 14. Oktober 2015, 20:32
von NoPy
Danke, ihr beiden. Dass es __irgendwo__ in der python- Dokumentation stehen muss, wusste ich schon, ich hatte es auch schon mal am Wickel. Aber ich konnte mich nicht mehr erinnern, wo genau ich das gefunden hatte. Und mein Versuch, danach zu googlen blieb erfolglos ob der ungeeigneten Stichwörter meiner Suche.

Vielen Dank, ihr habt mir echt Zeit gespart.

Re: for i in XYZ: welche Methoden muss XYZ haben?

Verfasst: Freitag 16. Oktober 2015, 20:33
von pixewakb
Ich hatte vor einigen Tagen/Wochen die gleiche Überlegung und wollte dasselbe Problem lösen. Bei allgemeinen, d. h. nicht konzeptionellen Fragen finde ich momentan die Seite stackoverflow.com ganz gut. Ich nutze es, indem ich via Google in Stichworten mein Problem - auf Englisch - suche und werde dann meist auf Seiten von stackoverflow.com geleitet, wo häufig in den Antworten brauchbare Lösungsansätze in Form von Code-Schnipseln zu finden sind. In der Regel hatte die Frage schon mal häufiger jemand.