2012-09-10 4 views
9

Patrząc na kod źródłowy asyncore module natknąłem się na metodę this. Ja to tutaj bez kontekstu, gdyż wydaje się być całkiem autonomiczny:Po co przypisywać zmiennej lokalnej wartość początkową bezpośrednio przed przypisaniem jej?

def initiate_send(self): 
    num_sent = 0 
    num_sent = dispatcher.send(self, self.out_buffer[:512]) 
    self.out_buffer = self.out_buffer[num_sent:] 

Moje pytanie: Dlaczego num_sent pierwszy zestaw do 0, ale potem natychmiast ponownie ustawiony na inną wartość?

Gdybym znalazł to gdziekolwiek, ale w kodzie źródłowym Pythona, powiedziałbym, że ta linia kodu jest zbędna. Czy jest jakiś sens, czy jest to dead code?

Odpowiedz

6

To martwy kod; Jest to zmienna lokalna, więc nigdy nie wpłynie na nic innego.

Jeśli była to zmienna instancji, to dispatcher.send mógł odczytać wartość podczas wykonywania, ale tutaj jest zupełnie niepotrzebny.

Moduł asyncore jest stosunkowo stare, linia została tam ponieważ był pierwszy committed to the python codebase w 1999

+0

I na bok od retabbing w 2000 roku, został on niezmieniony od tego czasu. – nneonneo

+0

Dzięki za wyczyszczenie tego. Bałem się, że przegapiłem coś bardzo prostego na temat działania Pythona. :) –

Powiązane problemy