On 17/11/2020 22:01, Loris Bennett wrote:
Hi,
I have a method for manipulating the membership of groups such as:
def execute(self, operation, users, group):
"""
Perform the given operation on the users with respect to the
group
"""
action = {
'get': self.get,
'add': self.add,
'delete': self.delete,
}
return action.get(operation)(users, group)
The 'get' action would return, say, a dict of users attribute, whereas
the 'add/delete' actions would return, say, nothing, and all actions
could raise an exception if something goes wrong.
The method which calls 'execute' has to print something to the terminal,
such as the attributes in the case of 'get' and 'OK' in the cases of
'add/delete' (assuming no exception occurred).
Is there a canonical way of dealing with a method which returns different
types of data, or should I just make all actions return the same data
structure so that I can generate a generic response?
Is the problem caused by coding the first step before thinking of the
overall task? Try diagramming or pseudo-coding the complete solution
(with multiple approaches), ie the operations AND the printing and
exception-handling.
Might it be more appropriate to complete not only the get but also its
reporting, as a unit. Similarly the add and whatever happens after that;
and the delete, likewise.
Otherwise the code must first decide which action-handler, and later,
which result-handler - but aren't they effectively the same decision?
Thus, is the reporting integral to the get (even if they are in separate
routines)?
--
Regards =dn
--
https://mail.python.org/mailman/listinfo/python-list