Zunächst einmal ist Python eine großartige Sprache. Dies ist mein erstes Projekt mit Python und ich habe schon eine Menge Fortschritte gemacht.
Es gibt keine Möglichkeit, dass dieser Code unten der beste Weg ist, dies zu tun. Wie schreibt man am besten eine Klassendefinition?
%Vor%Danke!
Auf diese Weise werden mehrere Aufrufe von self.get_column
Ich bin mir nicht sicher, ob es einen "besseren" Weg gibt. Was Sie haben, ist sicherlich gut lesbar. Wenn Sie vermeiden wollten, den Code Course.get_column
zu duplizieren, könnten Sie dafür ein Lambda definieren, wie in der Antwort von Matthew Flaschen, zB
Beachten Sie, dass Sie nicht die Zeile benötigen, die alle Felder auf "" initialisiert - nur die Einstellung in __init__
ist in Ordnung. Edit: Tatsächlich, wie Matthew sagt, werden Klassenfelder und keine Instanzfelder gesetzt - das habe ich total vermisst.
EDIT: Eigentlich könnte das Beste sein:
%Vor%Das setzt voraus, dass Sie PyQuery als pq importiert haben. Dies vermeidet die Verwendung von Indizes überhaupt.
%Vor%oder wenn Sie ein Listenverständnis wünschen:
%Vor%Ich weiß nicht, ob das die idiomatischen sind, aber es gibt definitiv weniger Boilerplate.
Entfernen Sie auch crn = course =
. Sie weisen der Klasse und nicht der Instanz zu.