У меня есть собственный модуль Python, назовем его mymodule, с функцией, которая загружает некоторые данные в файл json в соответствии с ключом:
Код: Выделить всё
import json
def fetch_data(k):
fname = os.path.join(
os.path.abspath(os.path.dirname(__file__)),
"data.json"
)
with open(fname, "r") as f:
data = json.load(f)
return data[k]
...
Затем я использую его в другом скрипте, например
Код: Выделить всё
from mymodule import fetch_data
for k in "ABCD":
print(fetch_data(k))
Проблема в реализации заключается в том, что функция открывает файл каждый раз, а если json большой, это может значительно замедлить работу. Я думал о загрузке json вне функции как глобальной переменной, а затем вызывать его в функции, но поскольку модуль выполняет множество других действий, не требующих этих данных, также кажется глупым открывать json каждый раз, когда вызывается модуль. , опять же, особенно если json большой).
Как лучше всего использовать Python
- Загружать внешний данные только при необходимости
- Сохраняйте данные в памяти после однократной загрузки, если они понадобятся позже (как в примере выше)
Я думал о классе, который инициализируется только при первом вызове с функцией получения ключа, но я не совсем уверен, как его правильно реализовать.
Подробнее здесь:
https://stackoverflow.com/questions/790 ... hon-module