Python/linecache/lazycache
التابع linecache.lazycache
يحصل هذا التابع على المعلومات الكافية عن وحدة غير معتمدة على الملف" non-file-based" بحيث تكون جاهزة لقراءة أسطرها لاحقًا باستخدام التابع getline
حتى لو كان المعامل module_globals
غير مُسند ضمن معاملات getline
، مما يسمح بتجنب عمليات الكتابة والقراءة إلى حين وجود حاجة حقيقية دون الحاجة إلى الاحتفاظ بالمعامل module_globals
ضمن الشيفرة البرمجية.
البنية العامة
linecache.lazycache(filename, module_globals)
المعاملات
filename
اسم الملف المُراد وضعه بالكاش بطريقة كسولة.
module_gloabals
قاموس (dict) يحتوي على مفتاحين __name__
و __loader__
يُستخدمان ضمن التابع لتحميل المعلومات الأساسية للملف.
القيمة المعادة
يعيد التابع قيمة منطقية True
إن كان الملف موجودًا سلفًا في الكاش بطريقة كسولة أو عند النجاح بفتحه بهذه الطريقة في حال عدم وجوده.
ويعيد False
إن كان الملف موجودًا في الكاش بالكامل، أو في حال الفشل بفتحه بطريقة كسولة أو حدوث مشكلة أخرى.
أمثلة
يبين المثال التالي طريقة استخدام التابع:
>>> import linecache
>>> linecache.lazycache('D:\\test.txt',globals())
True
>>> linecache.cache
{'D:\\test.txt': (functools.partial(<bound method BuiltinImporter.get_source of <class '_frozen_importlib.BuiltinImporter'>>, '__main__'),)}
>>> linecache.getline('D:\\test.txt',1)
'Hello World\n'
>>> linecache.cache
{'D:\\test.txt': (25, 1535099138.4333844, ['Hello World\n', 'How are you!\n'], 'D:\\test.txt')}
انظر أيضًا
التابع المضمن open.
التابع linecache.getline
لقراءة سطر من الملف ووضع محتوياته في الكاش.
مصادر