首页 > 解决方案 > 在python中实现一个观察者类

问题描述

我正在创建一个投标系统,学生可以在其中登录系统并通过 TKinter UI 请求导师并签署合同。我已经成功地做到了这一点。但现在我需要执行以下操作,

“当学生或导师登录系统时,如果有一个月内到期的合同,系统会通知用户。”

我在尝试实现这个功能时遇到了麻烦,因为我觉得这需要一个观察者,而且我一辈子都无法理解观察者设计模式。创建调用合同并确定哪个合同到期的方法没有问题,但我似乎无法弄清楚如何使用观察者来显示它。我可以得到一些指导吗?

作为参考,这是获取所有在一个月内到期的合同的方法。

    def expiring_contracts(self,username):
    user_contracts = self.all_contracts_by_user(username)
    expiring_contracts = []
    for i in user_contracts:
        time_string = i["expiryDate"]
        time_datetime = datetime.strptime(time_string,'%Y-%m-%dT%H:%M:%S.%f')
        one_month = datetime.now() + dateutil.relativedelta.relativedelta(months=1)
        if time_datetime < one_month:
            expiring_contracts.append(i)
    return expiring_contracts

self.all_contracts_by_user 是该类中的另一个方法,用于获取该用户的所有合同。我必须为此实现一个设计模式。

标签: python-3.xpython-requestsobserver-pattern

解决方案


推荐阅读