Python Glossary English

все Python 3codecsпонятие

codecs.IncrementalEncoder

инкрементальные кодеки

Базовый класс инкрементальных кодировщиков: encode(text, final=False) кодирует кусок, помня состояние между вызовами; reset() начинает поток заново.

Синтаксис

class MyEncoder(codecs.IncrementalEncoder):
    def encode(self, input, final=False): ...

Экземпляры базового класса не работают — encode бросает NotImplementedError; рабочий кодировщик дают getincrementalencoder или lookup(name).incrementalencoder. Состояние здесь — не хвост символа, а то, что уже сказано потоку: BOM записан, сдвиг в ISO-2022 включён. Поэтому один кодировщик нельзя делить между двумя файлами: второй останется без BOM.

Примеры

import codecs
enc = codecs.getincrementalencoder('utf-16-le')()
print(isinstance(enc, codecs.IncrementalEncoder))  # → True
print(enc.encode('ab'))  # → b'a\x00b\x00'
try:
    codecs.IncrementalEncoder().encode('x')
except NotImplementedError:
    print('base class')  # → base class

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности