为什么';t Python 2.x';s write()函数返回写入的字节数?

为什么';t Python 2.x';s write()函数返回写入的字节数?,python,Python,我最感兴趣的是导致Python2.x的write()函数返回None而不是写入的字节数的设计决策。这将意味着文件对象的某种不同的心智模型——它不仅仅是围绕UNIX文件描述符的轻量级包装器 以下是我所指的文档:来自Python官方手册3.2.2:- write(b) 写入bytes或bytearray对象b并返回字节数 写入。在非阻塞模式下,如果 需要写出缓冲区,但原始流会阻塞 UNIX并不是Python运行的唯一操作系统。你在看什么操作系统?linux上的to doc说:关于内置函数写入模块

我最感兴趣的是导致Python2.x的write()函数返回None而不是写入的字节数的设计决策。这将意味着文件对象的某种不同的心智模型——它不仅仅是围绕UNIX文件描述符的轻量级包装器


以下是我所指的文档:

来自Python官方手册3.2.2:-

write(b) 
写入bytes或bytearray对象b并返回字节数 写入。在非阻塞模式下,如果 需要写出缓冲区,但原始流会阻塞


UNIX并不是Python运行的唯一操作系统。你在看什么操作系统?linux上的to doc说:关于内置函数写入模块posix的帮助:write(…)write(fd,string)->BytesWrite将字符串写入文件描述符。他正在查看
file
类型的
write
方法。这似乎在python 2和3之间发生了变化。@Keith是的,尽管我们有非UNIX python,我们在标准库中有file.fileno()和file.isatty()之类的函数,因此假设UNIX兼容性是合理的。只适用于Python 3.x,所以我更新了这个问题,以参考Python 2.x及其文档。在这种情况下,这不是主要回答了问题吗?如果它在Python的最新版本中发生了更改,那么就没有太多的理由来研究为什么在以前的版本中不是这样(就像猜测为什么在2.7之前没有字典理解一样)