在类之间发送失败消息

时间:2011-08-05 15:54:57

标签: python exception-handling communication

好的,所以这只是一个概念性问题,我遇到了一些问题而不是编码问题。我正在构建一个简单的每周时间跟踪器,以自动化游戏中的某个管理员。所以,我有一个TimeSheet类和一个TimeBlock类。这是Timesheet类的评论,我不知道该怎么做。

class Timesheet():
    def __init__(self,person,week):
        self.person = person
        self.week = week
        self.hours = 168
        self.time_blocks = []

    def add_time_block(self,time_block):
    ##Test that the time_block actually fits in this week
        if sum([x.hours for x in self.time_blocks]) >= self.hours-time_block.hours:
            self.time_blocks.append(time_block)
        else: ##This is where I'm not sure what I should do.

这不是一个停止显示的错误,它可能是一个PEBKAC错误,所以我认为Exception类已经出来了。我希望TimeSheet能够在不将其与特定接口耦合的情况下说'不'的方式(所以我现在可以只用CLI来实现这一点,但是一旦我学会编写GUI或Web界面,我最终会添加一个GUI像端口到3.0)。这不应该破坏程序,但它应该警告用户他们已经尝试了一些无法完成的事情,并且他们需要在尝试插入它之前缩短该时间块,修改一些其他时间块以使其适合,或者只是提交时间表因为时间表已满。有什么干净,优雅的方法呢?

2 个答案:

答案 0 :(得分:0)

您可以提供一个事件监听器界面,其中“感兴趣的各方”可以注册以获取您生成的事件,例如在上面的else中。拥有一个商定的Event界面,您可以对这些界面做出明智的反应,例如有一个事件类型(枚举)或一个UserAlertEvent子类。

答案 1 :(得分:0)

我会使用例外。您始终可以在try ... except块中的CLI支持代码中包装函数调用并对其进行适当的反应;我认为使用这种方法没有任何缺点。

相关问题