gpt4 book ai didi

python - 传递类实例化(分层)

转载 作者:搜寻专家 更新时间:2023-10-30 22:04:28 28 4
gpt4 key购买 nike

程序设计:

  • A 类,实现较低级别的数据处理
    • 类 B-E,为 A 提供更高级别的接口(interface)以执行各种功能
      • F 类,它是根据用户输入与 B-E 交互的 UI 对象

在任何给定时间只能有一个 A 实例化,以避免竞争条件、数据损坏等。

向 B-E 提供 A 副本的最佳方式是什么?当前,F 实例化 A 并在程序的整个生命周期内保留它,并在创建它们时将其传递给 B-E。或者,我可以创建一个全局可用的模块,其中包含所有内容都使用的 A 的共享副本。另一种选择是创建 A 的 B-E 子类,但这违反了只有一个 A 的约束(因为每个子类都是它们自己的数据处理程序,可以这么说)。

语言是 Python 3,FWIW。

最佳答案

使用 Borg而不是单例。

>>> class Borg( object ):
... __ss = {}
... def __init__( self ):
... self.__dict__ = self.__ss
...
>>> foo = Borg()
>>> foo.x = 1
>>> bar = Borg()
>>> bar.x
1

关于python - 传递类实例化(分层),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3612535/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com