用于保持由一个类的许多实例产生的数据的模式

时间:2019-01-21 14:59:13

标签: python oop design-patterns

我的Python程序有一个main.py模块,该模块从Board类创建许多board对象。董事会班使用“大脑”班来决定董事会上可能发生的事情。 Brain类使用Data类来帮助决策。

我遇到的问题是,每当任何Board对象让Brain进行操作时,都必须将新信息添加到Data类中的 same Python字典中。我不敢这么说,但是我确实确实认为Data类中此词典的精神是它必须是“全局的”。什么是正确的模式,以便所有实例都可以写入 same 词典?我什至应该使用Data类来保存字典吗?

2 个答案:

答案 0 :(得分:0)

如果您想使用单独的类来保存字典,则可以这样创建它:

class Data:
    info = {}
    def __init__(self):
        ...

,然后您可以在数据类中包含所需的其他任何代码。要读取info中的内容,您可以调用Data.info,也可以在拥有Data类的实例时使用my_instance.info,但是无论该实例是什么,它都将始终读取相同的内容信息字典。希望这能回答您的问题

答案 1 :(得分:0)

还可以考虑使用DI来维护字典实例的数量,而不是使其单例。如果您将其设置为单例,则无法为每个用户提供字典。