5 ms·
At risk of bikeshedding, I think the "most pythonic" approach would be mock(obj, x=1, y=2) Seriously though, cool lib, thanks for it =)
by MBlume 15y ago
At risk of bikeshedding, I think the "most pythonic" approach would be mock(obj, x=1, y=2)
Seriously though, cool lib, thanks for it =)
- jacobolus 15y agoYes, the most pythonic is: mock(obj, x=1, y=2) Which you get by: def __init__(self, obj, **mocks): self.obj = obj self.mocks = mocks This can then also be called (using the built-in double-star-unpacking feature) as: mock(obj, **{'x': 1, 'y': 2}) or even mock(obj, **dict([('x', 1), ('y', 2)])) Then there’s no explicit need to support multiple alternative function signatures, and in particular you don’t get people using the (quite atypical and therefore semantically ambiguous): mock(obj, 'x', 1, 'y', 2).
- tebeka 15y agoThanks, updated the code to use keyword arguments only.