wie mache ich diesen Python-Code weniger hässlich

7

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!

    
Tyler 07.07.2010, 06:35
quelle

4 Antworten

14
%Vor%

Auf diese Weise werden mehrere Aufrufe von self.get_column

vermieden %Vor%     
John La Rooy 07.07.2010, 06:49
quelle
4

Persönlich würde ich ein Wörterbuch verwenden, um die Eigenschaft den Spaltennummern zuzuordnen:

%Vor%     
sdolan 07.07.2010 07:18
quelle
2

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

%Vor%

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.

    
EMP 07.07.2010 06:46
quelle
2

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.

    
Matthew Flaschen 07.07.2010 06:39
quelle

Tags und Links