Domanda

Io tendo ad usare ogni volta che sto lavorando su uno script del prototipo, e:

  1. Utilizzare una variabile piuttosto comune (come ad esempio fileCount), e
  2. Avere un metodo di grandi dimensioni (oltre 20 linee), e
  3. Non utilizzare ancora le classi o gli spazi dei nomi.

In questa situazione, al fine di evitare potenziali conflitti variabile, ho eliminare il bastardo, non appena mi sono fatto con esso. Lo so, in un codice di produzione devo evitare 1., 2. e 3., ma andando da un prototipo che lavora per una classe completamente lucido è molto tempo. A volte potrei voler accontentarsi di un sub-ottimale, lavoro refactoring rapida. In quel caso trovo mantenendo le dichiarazioni del a portata di mano. Sto sviluppando un inutile, cattiva abitudine? È del totalmente evitabile? Quando sarebbe una buona cosa?

È stato utile?

Soluzione

Non credo che del di per sé è un odore di codice.

Riutilizzo di un nome variabile nello stesso namespace è sicuramente un odore di codice non utilizza classi e altri namespace all'occorrenza. Quindi, utilizzando del per facilitare questo genere di cose è un odore di codice.

L'uso unico veramente appropriato di del che mi viene in mente la parte superiore della mia testa è rottura riferimenti ciclici, che sono spesso un odore di codice, nonché (e spesso, questo non è nemmeno necessario). Ricordate, tutto del non fa altro che eliminare il di riferimento per l'oggetto e non l'oggetto stesso. Che sarà curato da uno conteggio di riferimento o raccolta dei rifiuti.

>>> 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]

Si può vedere che l'elenco è tenuto in vita dopo l'istruzione del perché b detiene ancora un riferimento ad esso.

Così, mentre del non è davvero un odore di codice, può essere associato con le cose che sono.

Altri suggerimenti

Qualsiasi codice che è ben organizzato in funzioni, classi e metodi non ha bisogno del se non in casi eccezionali. Obiettivo di costruire le applicazioni ben ceduti da subito utilizzando più funzioni e metodi, evitare di riutilizzare i nomi delle variabili, ecc

L'uso di una dichiarazione del è OK - non porta ad alcun problema, lo uso spesso quando io uso Python come un sostituto per gli script di shell sul mio sistema, e quando sto facendo esperimenti di script. Tuttavia, se appare spesso in una vera e propria applicazione o una libreria, è un'indicazione che qualcosa non è a posto, probabilmente mal strutturato codice. Non ho mai dovuto usarlo in un'applicazione, e vi piacerebbe raramente vedo utilizzato ovunque sul codice che è stato rilasciato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top