虽然深入研究了内置unittest.mock
是如何设计的,但我在mock.py
的官方源代码中遇到了these lines:
class Base(object):
_mock_return_value = DEFAULT
_mock_side_effect = None
def __init__(self, /, *args, **kwargs):
pass
class NonCallableMock(Base):
...
# and later in the init
def _init__ (...):
...
_safe_super(NonCallableMock, self).__init__(
spec, wraps, name, spec_set, parent,
_spec_state
)
Base
类除了提供公共类属性_mock_return_value
和_mock_side_effect
之外还有什么作用,因为它只有一个空的__init__
?
为什么NonCallableMock
必须调用_safe_super(NonCallableMock, self).__init__()
,我认为这正是Base
类的空__init__
方法?
非常感谢您提前回答.
我试图理解代码,但看不到设计背后的基本原理.