9

asyncore モジュールのソース コードを見ているときに、このメソッドに出会いました。かなり自己完結しているように見えるので、文脈なしでここに含めます。

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、実行中に値を読み取ることができたはずですが、ここでは完全に不要です。

このモジュールは比較的古く、 1999年に最初にPythonコードベースにコミットさasyncoreれて以来、このラインは存在しています。

于 2012-09-10T12:53:23.087 に答える