Closed LeiYangGH closed 1 week ago
learning the example patterns/behavioral/memento.py. Transactional is defined as a descriptor, this looks more complicated
Transactional
class Transactional: def __init__(self, method): self.method = method def __get__(self, obj, T): def transaction(*args, **kwargs): state = memento(obj) try: return self.method(obj, *args, **kwargs) except Exception as e: state() raise e return transaction
how about refactor to normal higher-order function?
def Transactional(method): def transaction(obj, *args, **kwargs): state = memento(obj) try: return method(obj, *args, **kwargs) except Exception as e: state() raise e return transaction
Sure, any simplification is welcome. Feel free to create a pull request
created https://github.com/faif/python-patterns/pull/408. test passed. could you review?
learning the example patterns/behavioral/memento.py.
Transactional
is defined as a descriptor, this looks more complicatedhow about refactor to normal higher-order function?