2012-09-10 20 views
9

Mientras miraba el código fuente del asyncore module encontré el método this. Voy a incluir aquí fuera de contexto, ya que parece ser bastante autónomo:¿Por qué darle a una variable local un valor inicial inmediatamente antes de asignarle una variable local?

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

Mi pregunta: ¿Por qué es num_sent primer set para 0, pero inmediatamente ajusta de nuevo a otro valor?

Si hubiera encontrado esto en cualquier lugar menos en el código fuente de Python, diría que esta línea de código es superflua. ¿Hay algún punto o es dead code?

Respuesta

6

Eso es código muerto; es una variable local, por lo que nunca va a influir en nada más.

Si hubiera sido una variable de instancia, entonces dispatcher.send podría haber leído el valor durante la ejecución, pero aquí es completamente superfluo.

El módulo asyncore es relativamente antigua, la línea ha estado allí desde que fue committed to the python codebase en 1999.

+0

Y, aparte de un retabbing en 2000, ha sido modificado desde entonces. – nneonneo

+0

Gracias por aclarar eso. Tenía miedo de haberme perdido algo muy básico sobre cómo funciona Python. :) –

Cuestiones relacionadas