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