>> >> If the class in question has legitimate, non-testing, reasons to specify >> different Queues, then make it a default argument instead: >> >> def __init__(self, ..., queue=None): >> if queue is None: >> queue = Queue() >> self.queue = queue > > I already stated that this is is fine, as long as the number of arguments > stays in manageable levels. Although I do think testing is good enough reason > to have it injected anytime. For consistency, it makes sense to have same way > to create all objects. I wouldn't suggested of using that mechanism in public > API's, just in internal components. >
But if the number of arguments is not manageable, you need to change the design anyway, for the sake of cleanness. So YAGNI. -- https://mail.python.org/mailman/listinfo/python-list