前几天我正在编码时突然发现自己在一个简单的问题上苦苦挣扎,但解决方案却令人困惑(至少以pythonic的方式)。
该代码应该只下载一些文件,为此,它会调用一些DownloadController将它传递给接收到的事件,callback例如init,和.progresserrorsuccess
但是,我的代码根本不需要这些事件。我想到了一些解决方案
- 更改
DownloadController为具有默认值callback=None并检查它以便在这种情况下忽略发送事件 - 有
NullCallbackImpl哪个遵守回调接口但什么都不做(仅pass在每个事件上)
第一种方法不喜欢它,因为代码会有点乱而且设计得不好。
所以,我坚持第二种方法......问题:
- 拥有一个 会有多好(也许“有多糟糕”)
null_callback = mock.Mock()?(使用 Michael Foord 的 python 模拟库)- 有没有这样做的图书馆?
- 或者我应该坚持用
NullCallbackImpl一个简单的方法来实现每个方法pass?