Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单Python文件/对象实例_Python_Oop_File Io - Fatal编程技术网

简单Python文件/对象实例

简单Python文件/对象实例,python,oop,file-io,Python,Oop,File Io,假设我有以下代码 file1 = open("myfile","w") #Write to file1... #Open Second File file2 = open("otherfile","w") #Write to file2... file1.close() file1 = file2 file2.close() 这是否会有效地导致关闭所有文件,或者file1仍然有一个打开的文件(其他文件)可以写入到still?否,在最后一行中,file1和file2都引用了相同的文件

假设我有以下代码

file1 = open("myfile","w")

#Write to file1...

#Open Second File
file2 = open("otherfile","w")

#Write to file2...

file1.close()

file1 = file2

file2.close()

这是否会有效地导致关闭所有文件,或者file1仍然有一个打开的文件(其他文件)可以写入到still?

否,在最后一行中,
file1
file2
都引用了相同的文件对象,该对象由
file2.close()关闭。Python变量只是指向对象的名称,因此对一个名称所做的操作会发生在指向该对象的所有名称上。

否,在最后一行中,
file1
file2
都引用相同的文件对象,该对象由
file2.close()关闭。Python变量只是指向对象的名称,因此对一个名称所做的操作会发生在指向该对象的所有名称上。

是。(为了澄清,两个文件对象都将关闭,并且无法写入) 变量名只是对底层对象的引用。在对象上调用
close()
方法时,它将访问该对象并执行该方法。如果随后检查这两个对象,可以看出:

>>> file1
<closed file 'file2.txt', mode 'w' at 0x10045e930>
>>> file2
<closed file 'file2.txt', mode 'w' at 0x10045e930>
>>> 
>>文件1
>>>文件2
>>> 
请注意,在这种情况下,您可以设置
file1=file2
,使它们都引用同一个关闭的文件对象。如果不再引用原始
file1
对象,则该对象将被垃圾收集。

是。(为了澄清,两个文件对象都将关闭,并且无法写入) 变量名只是对底层对象的引用。在对象上调用
close()
方法时,它将访问该对象并执行该方法。如果随后检查这两个对象,可以看出:

>>> file1
<closed file 'file2.txt', mode 'w' at 0x10045e930>
>>> file2
<closed file 'file2.txt', mode 'w' at 0x10045e930>
>>> 
>>文件1
>>>文件2
>>> 

请注意,在这种情况下,您可以设置
file1=file2
,使它们都引用同一个关闭的文件对象。如果没有对原始
文件1
对象的更多引用,则该对象将被垃圾收集。

由于您在重新分配文件1之前关闭了文件1,因此两个文件都将关闭

由于您在重新分配文件1之前关闭了文件1,因此两个文件都将关闭