我正在为我在python中编写的boggle-clone创建一个联网服务器,它接受用户,解决板,并对玩家输入进行评分.我正在使用的字典文件是1.8MB(ENABLE2K字典),我需要它可以用于几个游戏求解器类.现在,我有它,以便每个类逐行遍历文件并生成一个哈希表(关联数组),但我实例化的解算器类越多,它占用的内存就越多.
我想要做的是导入一次字典文件,并在需要时将其传递给每个求解器实例.但是最好的方法是什么?我应该在全局空间中导入字典,然后在解算器类中以globals()['字典']的形式访问它吗?或者我应该导入字典然后将其作为参数传递给类构造函数?其中一个比另一个好吗?有第三种选择吗?
如果您创建了一个dictionary.py模块,其中包含读取文件并构建字典的代码,则此代码仅在第一次导入时执行.进一步导入将返回对现有模块实例的引用.因此,您的课程可以:
import dictionary dictionary.words[whatever]
其中dictionary.py有:
words = {} # read file and add to 'words'