| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > with statement и StreamReader/Writer |
| Автор: Void 19.10.2006, 19:19 | ||||||||
| Обнаружил, как мне кажется, небольшой огрех в реализации классов потокового (де)кодирования в модуле codecs. Вот такой код:
работает совсем не так, как
В первом случае f присваивается значение, возвращаемое методом __enter__ созданного объекта. Но этот метод среди прочих просто делегируется инкапсулируемому объекту file и возвращает сам этот объект, а не кодек. В результате появляются странные ошибки выполнения. Решение очевидно: добавить метод
в реализации StreamReader, StreamWriter и StreamReaderWriter. Или такой quick fix в собственном модуле:
Возможно, кому-то это сэкономит те минуты, которые я потратил на поиск ошибки |