diff --git a/python/item.py b/python/item.py index e9278c1a..17f1e4f0 100644 --- a/python/item.py +++ b/python/item.py @@ -1,21 +1,25 @@ +from abc import ABC, abstractmethod + from python.helper import decrease_quality, increase_quality -class Item: - def __init__(self, name, sell_in, quality): - self.name = name - self.sell_in = sell_in - self.quality = quality +class Item(ABC): + @abstractmethod + def __init__(self): + pass + + @abstractmethod def update_quality(self): """Update the quality of an item""" pass - def __repr__(self): - return "%s, %s, %s" % (self.name, self.sell_in, self.quality) - class RegularItem(Item): + def __init__(self, name, sell_in, quality): + self.name = name + self.sell_in = sell_in + self.quality = quality def update_quality(self): """Update the quality of an item""" @@ -24,12 +28,20 @@ class RegularItem(Item): class Sulfuras(Item): + def __init__(self, name, sell_in, quality): + self.name = name + self.sell_in = sell_in + self.quality = quality def update_quality(self): pass class Backstage(Item): + def __init__(self, name, sell_in, quality): + self.name = name + self.sell_in = sell_in + self.quality = quality def update_quality(self): if self.sell_in <= 0: @@ -40,11 +52,14 @@ class Backstage(Item): self.quality = increase_quality(quality=self.quality, increase_quality_by=2) else: self.quality = increase_quality(quality=self.quality) - self.sell_in = self.sell_in - 1 class AgedBrie(Item): + def __init__(self, name, sell_in, quality): + self.name = name + self.sell_in = sell_in + self.quality = quality def update_quality(self): self.quality = increase_quality(quality=self.quality) @@ -52,6 +67,10 @@ class AgedBrie(Item): class Conjured(Item): + def __init__(self, name, sell_in, quality): + self.name = name + self.sell_in = sell_in + self.quality = quality def update_quality(self): self.quality = decrease_quality(quality=self.quality, sell_in=self.sell_in, decrease_quality_by=2)