我有以下代码:
with open(True, 'w') as f:
f.write('Hello')
为什么此代码会打印文本 Hello
而不是引发错误?
我有以下代码:
with open(True, 'w') as f:
f.write('Hello')
为什么此代码会打印文本 Hello
而不是引发错误?
来自 内置函数文档 open()
:
open(file, mode='r', buffering=-1...
文件 是一个字符串或字节对象,给出要打开的文件的路径名(绝对或相对于当前工作目录)或要包装的文件的整数文件描述符
该“整数文件描述符”在进一步描述 os
模块文档:
例如,标准输入通常是文件描述符0,标准输出是1,标准错误是2.然后,进程打开的其他文件将分配3,4,5等。
因为布尔是一个 int
子类, False
可以互换使用 0
和 True
同 1
。因此,打开一个文件描述符 True
与打开文件描述符相同 1
,这将选择标准输出。
来自 内置函数文档 open()
:
open(file, mode='r', buffering=-1...
文件 是一个字符串或字节对象,给出要打开的文件的路径名(绝对或相对于当前工作目录)或要包装的文件的整数文件描述符
该“整数文件描述符”在进一步描述 os
模块文档:
例如,标准输入通常是文件描述符0,标准输出是1,标准错误是2.然后,进程打开的其他文件将分配3,4,5等。
因为布尔是一个 int
子类, False
可以互换使用 0
和 True
同 1
。因此,打开一个文件描述符 True
与打开文件描述符相同 1
,这将选择标准输出。