Что возвращает метод `write` файлового объекта? - PullRequest
2 голосов
/ 17 октября 2019

Встроенная в Python функция open возвращает «файлоподобный объект». Эти файловые объекты могут быть получены и другими способами и могут фактически не представлять файлы.

Мне не удалось найти то, что я хочу знать об этом.

https://docs.python.org/3/glossary.html#term-file-object утверждает, что все файловые объекты имеют одну общую черту: они предоставляют «файлово-ориентированный API». Но я не могу найти никакой документации об этом API.

Метод файлового объекта write, кажется, возвращает целое число, но что он представляет? Возвращаемое значение гарантированно является целым числом? Какими методами и свойствами должны обладать файловые объекты?

1 Ответ

2 голосов
/ 17 октября 2019

Люди настолько маловероятно, что будет использовать возвращаемое значение write, поэтому я не удивлюсь, если какой-то конкретный файловый объект только что вернул None. Тем не менее, есть нечто, напоминающее спецификацию.

Поведение, которое должны обеспечивать методы файловоподобного объекта, задокументировано в io модуле документации , под абстрактными базовыми классами. Хотя многие файловые объекты не будут экземплярами этих ABC, и многие файловые объекты не будут предоставлять все методы в ближайшей ABC, методы, которые они do предоставляют, должны соответствовать документам ABC.

Для двоичного объекта, подобного файлу, write должен возвращать количество записанных байтов, как описано в RawIOBase.write.

Для объекта, подобного текстовому файлу, write должен возвращать количество написанных символов, как указано в TextIOBase.write.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...