Python 考虑到调用Dataset.close()后我仍然可以访问延迟加载的数据,它实际上有什么影响?

Python 考虑到调用Dataset.close()后我仍然可以访问延迟加载的数据,它实际上有什么影响?,python,python-xarray,file-pointer,Python,Python Xarray,File Pointer,根据文档,关闭链接到此对象的所有文件。但以下示例成功,除非手动关闭fp: 导入xarray fn=“/data/gholl/cache/fogtools/abi/2017/03/14/20/06/7/或_-abi-L1b-RadF-M3C07_G16_s20170732006100_e20170732016478_c20170732016514.nc” fp=打开(fn,“rb”) ds=xarray.open_数据集(fp) ds.close() #fp.close() 打印(ds[“Rad”

根据文档,关闭链接到此对象的所有文件。但以下示例成功,除非手动关闭fp:

导入xarray
fn=“/data/gholl/cache/fogtools/abi/2017/03/14/20/06/7/或_-abi-L1b-RadF-M3C07_G16_s20170732006100_e20170732016478_c20170732016514.nc”
fp=打开(fn,“rb”)
ds=xarray.open_数据集(fp)
ds.close()
#fp.close()
打印(ds[“Rad”][400:402,300:302].load())
无论我将fn或fp传递给
打开的\u数据集
,它都会成功。当我通过将
chunks=1024
传递到
open\u dataset
惰性地加载dask时,行为是相同的。查看源代码,它看起来确实像
close
指令被传递到后端。那么,当底层文件被关闭并且数据在被请求之前无法访问时,最后一行如何工作呢