9

在查看异步模块的源代码时,我遇到了这种方法。我将在没有上下文的情况下将其包含在此处,因为它似乎是完全独立的:

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

我的问题:为什么num_sent首先设置为0,然后立即再次设置为另一个值?

如果我在除 python 源代码之外的任何地方找到它,我会说这行代码是多余的。有什么意义,还是死代码

4

1 回答 1

6

那是死代码;它是一个局部变量,所以它永远不会影响其他任何东西。

如果它是一个实例变量,那么dispatcher.send可以在执行时读取该值,但在这里完全是多余的。

asyncore模块相对古老,自1999 年首次致力于 python 代码库以来,该行就一直存在。

于 2012-09-10T12:53:23.087 回答