Coala的IO机制¶
Coala不是直接从项目目录加载文件,而是使用一个名为 File
它提供了一个处理文件的接口。
File
与简单的文件加载相比,提供以下优势。
延迟加载文件:文件不必立即加载到内存中,而是Coala收集所有
File
对象,然后在需要时使用这些对象来访问文件内容。可以通过各种格式访问内容:
File
提供以三种格式访问文件内容的选项。作为字符串使用File.string
,作为列表使用File.lines
和RAW格式,使用File.raw
。要访问文件中的特定行,可以使用``File.line(Line_Number)``。存储原始文件内容的另一个好处是能够轻松部署仅处理原始文件的分析。因为内容不会被解码,只要File.string
我们不再需要单独的模式来使用RAW文件。高性能:
File
的属性进行缓存,以减少因多次访问同一属性而导致的不必要负载。
高速缓存¶
File
使用 cached_property
来装饰它的属性。因此,第一次只调用属性一次,然后将其结果存储在绑定到相同属性的缓存中 File
对象。如果再次访问同一对象的属性,则执行缓存查找,并且在不再次加载文件的情况下提供内容。一旦 File
对象被销毁,缓存也随之销毁。