如何解决Python执行类函数而无需实例化
我正在构建一个软件并使用一个类来仅存储数据:
class Data():
data = [1,2,3]
现在可以从其他类访问和更改此类中的数据,而无需实例化 Data 类,这正是我所需要的。 为了正确更新软件,我必须在数据更改时调用其他类中的函数。我查看了 python 中的观察者模式,但如果不使数据成为仅在实例化时可用的类的属性,则无法使其工作。换句话说,我发现需要所有观察者模式实现:
class Data():
def __init__(self):
self.data = [1,3]
显然,如果 Data 是我的发布者/可观察对象,则需要实例化一次才能获得功能(据我所知),但我正在寻找如下实现:
class Data():
data = [1,3]
def __init__(self):
self.subscribers = {}
def register(self,who,callback):
self.subscribers[who] = callback
def dispatch(self):
for susbriber,callback in self.subscribers.items():
callback()
为了示例起见,让我们使用另一个类作为订阅者/观察者,它也可以使用另一个函数更改数据。由于这将是处理软件的主要类,这是我实例化 Data 以获得观察者行为的地方。然而,重要的是我不必为了获取数据而实例化它,因为数据将从许多其他类中更改:
class B():
def __init__(self):
self.data = Data()
self.data.register(self,self.print_something)
def print_something(self):
print("Notification Received")
def change_data(self):
Data.data.append(100)
我现在的问题是,当数据以任何方式发生变化时,如何自动从发布者/可观察对象发送通知?
我在 Windows 10 上运行 python 3.8。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。