在 Python 模块内共享数据
Sharing data within a Python module
我已经编写了一些 Python 库并将它们构建为一个模块。模块中的所有文件都需要文本文件中的一些数据才能工作。最简单的解决方案是让每个图书馆在需要时读取文件。但是,多次读取同一个文件似乎效率很低。
我宁愿只读取一次文件并在不同的库之间共享这些数据。我可以编写一个额外的库来在初始化时读取数据并将其存储在全局变量中,以便之后可以由其他库导入。
虽然这可能有效,但我仍然认为这个解决方案不是最优雅的。有没有针对此类问题的最佳实践?
由于它应该在模块之间通用,因此应该在包中创建一个名为 constants 的文件,并使用其中的文件内容初始化变量。事后想想,包的初始化文件也是此类数据的良好候选者。
如果它是一个配置你也可以在python中重写它并且喜欢一些软件(例如:django)。
Django 的配置在一个名为 settings.py 的文件中。
您可以使用类似 :
的方式导入它
from django.conf import settings
并且您可以通过 settings.some_variable
.
使用其中的内容
希望对你有所帮助。
我已经编写了一些 Python 库并将它们构建为一个模块。模块中的所有文件都需要文本文件中的一些数据才能工作。最简单的解决方案是让每个图书馆在需要时读取文件。但是,多次读取同一个文件似乎效率很低。 我宁愿只读取一次文件并在不同的库之间共享这些数据。我可以编写一个额外的库来在初始化时读取数据并将其存储在全局变量中,以便之后可以由其他库导入。 虽然这可能有效,但我仍然认为这个解决方案不是最优雅的。有没有针对此类问题的最佳实践?
由于它应该在模块之间通用,因此应该在包中创建一个名为 constants 的文件,并使用其中的文件内容初始化变量。事后想想,包的初始化文件也是此类数据的良好候选者。
如果它是一个配置你也可以在python中重写它并且喜欢一些软件(例如:django)。 Django 的配置在一个名为 settings.py 的文件中。 您可以使用类似 :
的方式导入它from django.conf import settings
并且您可以通过 settings.some_variable
.
希望对你有所帮助。