我有一个JSON文件,作为小游戏中的数据存储,用来学习Python语言。
我熟练掌握其他几种编程语言。
我有几个类想要读取JSON,因此我想将JSON从文件加载到变量中,并允许其他类通过getter和setter方法访问该变量,因为每个类都需要JSON的不同部分。
这听起来像是一个Singleton模式。我知道Python模块的行为类似于Singleton模式。
然而,当我将模块导入到我的类中时,变量会重置?
以下是非常简化的示例:
模块:- 状态管理器(state_manager)
x=45
def set_x(value):
x=value
def get_x():
return x
类:- 游戏
import Player
import state_manager
value = state_manager.get_x()
类别:- 玩家
import state_manager
state_manager.set_x(12)
通过设置断点,我发现当游戏导入玩家时,Player
将state_manager
中的x
值设置为12。
但是当我使用state_manager.get_x()
查看返回给游戏的x
值时,结果是45。
这是为什么呢?
在Python中创建一个可以在其他类之间共享的模块或对象的正确方法是什么?
我知道我可以自己构造Singleton,但我想使用Python的功能。