El 04/09/13 20:14, Xaxa Urtiz escribió:
and what about something like that :


class AbsctractAccount():
      def transaction(self, amount, target):
          logging.info("Start transaction of %s to %s" % (amount, target))
          self.DoTransaction(amount,target)

      def DoTransaction(self,amount,target):
          pass # or raise notimplemented or do not implement this methods in 
the abstract class
          ...

class DebitAccount(AbstractAccount):
      def DoTransaction(self, amount, target):
          ...

class SomeOtherAccount(...)
      ....
like that you only have to write the logging function once.

Thanks for the hint! This also work well, and has the advantage of being specific to this function -- I did use decorator as Ethan suggested, which works for most of the case, but there is function (other than transaction) needs specialized logging because the function doesn't return anything but changes a class variable -- using a special decorator for just one function is over-generalizing, and your method kicks in.

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to