Frage

Ich neige dazu, es zu benutzen, wenn ich an einem Prototyp Skript arbeitete, und:

  1. Verwenden einer etwas gemeinsame Variable (wie fileCount) und
  2. Haben Sie eine große Methode (20+ Linien) und
  3. Verwenden Sie keine Klassen oder Namespaces noch nicht.

In dieser Situation um möglichen variable Zusammenstoß zu vermeiden, lösche ich den Scheiß, sobald ich mit ihm fertig bin. Ich weiß, in einem Produktionscode I 1. vermeiden soll, 2. und 3., aber von einem Prototyp gehen, dass die Arbeiten zu einer völlig polierte Klasse sind zeitaufwendig. Manchmal könnte ich will für einen suboptimalen, schnell Refactoring Job begleichen. In diesem Fall finden zu halten wir die del Aussagen praktisch. Bin ich eine unnötige, schlechte Gewohnheit zu entwickeln? Ist del völlig vermeidbar? Wann wäre es eine gute Sache sein?

War es hilfreich?

Lösung

Ich glaube nicht, dass del selbst ein Code Geruch ist.

Wiederverwenden einen Variablennamen im gleichen Namensraum ist auf jeden Fall ein Code Geruch als nicht-Klassen und andere Namensräume gegebenenfalls. Also mit del diese Art der Sache zu erleichtern, ist ein Code Geruch.

Der einzigen wirklich sinnvolle Einsatz von del, dass ich aus der Spitze von meinem Kopf denken kann zyklische Referenzen bricht die auch oft ein Code Geruch sind (und oft ist dies auch gar nicht nötig). Denken Sie daran, alle del tut, ist löschen Sie die Hinweis auf das Objekt und nicht das Objekt selbst. Das wird entweder durch einen Referenzzähler oder Müllsammel betreut werden.

>>> a = [1, 2]
>>> b = a
>>> del a
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> b
[1, 2]

Sie können sehen, dass die Liste nach der del Aussage am Leben gehalten wird, weil b noch einen Verweis auf sie hält.

So, während del nicht wirklich ein Code Geruch ist, kann es mit den Dingen in Verbindung gebracht werden, die sind.

Andere Tipps

Jeder Code, der in Funktionen, Klassen und Methoden gut organisiert ist nicht braucht del außer in Ausnahmefällen. Ziel Ihre Anwendungen von Anfang an gut einkalkuliert aufzubauen, indem sie mehr Funktionen und Methoden verwenden, vermeiden Sie Variablennamen Wiederverwendung usw.

Die Verwendung einer del Aussage ist OK - es führt nicht zu irgendwelchen Problemen, ich habe es oft verwenden, wenn ich Python verwenden als Ersatz für Shell-Skripten auf meinem System, und wenn ich mache Skript Experimente. Wenn es jedoch oft in einer realen Anwendung oder Bibliothek angezeigt wird, ist dies ein Zeichen, dass etwas nicht in Ordnung, wahrscheinlich schlecht Code strukturiert. Ich hatte nie in einer Anwendung zu verwenden, und Sie würden es selten sehen überall auf Code verwendet, die freigegeben worden sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top