I want to create a service class that just has one instance, so should I make that class a singleton, or should I make the methods as classmethods?
class PromoService():
    @classmethod
    def create_promo(cls, promotion):
        #do stuff
        return promo
class DiscountPromoService(PromoService):
    @classmethod
    def create_promo(cls, promo, discount):
        promo = super(DiscountPromoService, cls).create_promo(promo)
        promo.discount = discount
        promo.save()
        return promo
The reason I don't want to create it as a module is because I would need to subclass my service. What is the most pythonic way to do this, the above-mentioned way or to make a singleton class?
 
     
     
    