Day21

@charset.setter
def charset(self, value):
    self._charset = value

 def serialize_headers(self):
        """HTTP headers as a bytestring."""
        def to_bytes(val, encoding):
            return val if isinstance(val, bytes) else val.encode(encoding)

        headers = [
            (to_bytes(key, 'ascii') + b': ' + to_bytes(value, 'latin-1'))
            for key, value in self.headers.items()
        ]
        return b'\r\n'.join(headers)

    __bytes__ = serialize_headers

def serialize_headers(self)の中に、この関数の中だけで使用する関数を書いている。
それがdef to_bytes(val, encoding)
・ return val if isinstance(val, bytes) else val.encode(encoding)がreturn のところに一行でif-else文をかけるのが凄い。

headers はリスト。その中で、上記で書いた関数を足し合わせている。リストの中に、リスト内包表記。
返り値がheaderのリストを改行して返す。

__があるのは特殊メソッド。よーわからん。このserialize_headersを特殊メソッドにしちゃうよって感じかな?わっかんね。

Pythonのif __name__ == "__main__" とは何ですか?への回答 - Python学習チャンネル by PyQ