Wie vermeidet man die Verwendung von "self" so viel [duplizieren]

8

Ich schreibe ein Programm, um ein kleines physikalisches System zu simulieren und bin immer genervter geworden, wenn ich solche Dinge schreibe:

K = 0.5 * self.m * self.v**2

Im obigen Fall ist die Gleichung kurz und ziemlich verständlich, aber ich habe Situationen, in denen es so viel self gibt, dass die ganze Sache endet wie ein Durcheinander. Mir ist bewusst, dass python immer self benötigt, um auf Klassenmitglieder zu verweisen, aber gibt es eine Möglichkeit, den Code nicht wie ein Mosaik von self s aussehen zu lassen?

BEARBEITEN : Normalerweise mache ich Dinge wie:

var = self.var

und weiterhin var anstelle von self.var verwenden. Später mache ich:

self.var = var

Aber das scheint wirklich dumm zu sein. Was wäre der pythonische Weg, um dieses Problem zu lösen?

    
pap42 16.02.2014, 18:43
quelle

3 Antworten

2

Für unordentliche Teile würde ich Python Module und "Modulebene-Variablen" anstelle von Klassen .

    
iljau 16.02.2014 20:31
quelle
2

Wenn Sie nur einige Tastenanschläge speichern möchten, können Sie self immer in s umbenennen:

%Vor%

Dies spart 3 Zeichen pro Verwendung von self . Das widerspricht der Standardkonvention, aber nichts hindert Sie daran. Ich würde davon abraten, dies im allgemeinen Code zu tun, aber es könnte gerechtfertigt sein, wenn es einige sehr lange Formeln lesbarer macht. Erwähnen Sie die ungewöhnliche Auswahl in einem Kommentar, falls jemand Ihren Code lesen muss, wenn Sie schon lange nicht mehr sind.

    
Bas Swinckels 16.02.2014 20:46
quelle
0

Ich denke, es ist möglich, einige schwarze Magie in Python zu verwenden und einen Kontextmanager zu entwickeln, der ein Objekt nimmt und sein gesamtes Attribut in den locals() des Kontexts legt und es wieder dem Objekt in __exit__ zuweist. Funktion.

Sie haben Ссылка gefunden, was hilfreich sein könnte.

    
yegle 16.02.2014 21:29
quelle

Tags und Links