Python Glossary English

Python 3.5+linecacheфункция

linecache.lazycache()

чтение строк

Регистрирует в кэше способ получить исходник модуля, которого нет на диске (zip, замороженный), не читая его сразу.

Синтаксис

linecache.lazycache(filename, module_globals)

Обычный getline ищет файл на диске и для модуля из zip-архива вернёт '', если не передан module_globals. lazycache запоминает загрузчик из глобальных имён модуля, и дальнейшие getline по этому имени работают без module_globals. Функция возвращает False для имён вида '<stdin>' и когда у модуля нет загрузчика с get_source.

Примеры

import linecache, sys, zipfile
with zipfile.ZipFile('lib.zip', 'w') as z:
    z.writestr('zmod.py', 'def f():\n    return 42\n')
sys.path.insert(0, 'lib.zip')
import zmod
print(repr(linecache.getline(zmod.__file__, 1)))  # → ''
print(linecache.lazycache(zmod.__file__, vars(zmod)))  # → True
print(repr(linecache.getline(zmod.__file__, 1)))  # → 'def f():\n'
print(linecache.lazycache('<stdin>', {}))  # → False

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности