class PizzaStorage:
def __init__(self):
self.count = 10
def minus(self, count):
self.count = self.count - count
class Customer:
def __init__(self, name, storage):
self.name = name
self.storage = storage
def eat(self):
self.storage.minus(1)
class FatCustomer(Customer):
def __init__(self, name, storage, logger):
super().__init__(name, storage)
self.logger = logger
def eat(self):
self.storage.minus(1)
self.logger.write_to_log('fat eat')
def sayThanks(self):
print('thanks!')
class Logger:
def write_to_log(self, text):
print('LOG: ', text)
pizzaStorage = PizzaStorage()
customer = Customer('bill', pizzaStorage)
fatCustomer = FatCustomer('bob', pizzaStorage, Logger())
customer.eat()
print(pizzaStorage.count)
fatCustomer.eat()
print(pizzaStorage.count)
Y2xhc3MgUGl6emFTdG9yYWdlOgogICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgIHNlbGYuY291bnQgPSAxMAoKICAgIGRlZiBtaW51cyhzZWxmLCBjb3VudCk6CiAgICAgICAgc2VsZi5jb3VudCA9IHNlbGYuY291bnQgLSBjb3VudAoKCmNsYXNzIEN1c3RvbWVyOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0b3JhZ2UpOgogICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAgICBzZWxmLnN0b3JhZ2UgPSBzdG9yYWdlCgogICAgZGVmIGVhdChzZWxmKToKICAgICAgICBzZWxmLnN0b3JhZ2UubWludXMoMSkKCgpjbGFzcyBGYXRDdXN0b21lcihDdXN0b21lcik6CiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc3RvcmFnZSwgbG9nZ2VyKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKG5hbWUsIHN0b3JhZ2UpCiAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKCiAgICBkZWYgZWF0KHNlbGYpOgogICAgICAgIHNlbGYuc3RvcmFnZS5taW51cygxKQogICAgICAgIHNlbGYubG9nZ2VyLndyaXRlX3RvX2xvZygnZmF0IGVhdCcpCgogICAgZGVmIHNheVRoYW5rcyhzZWxmKToKICAgICAgICBwcmludCgndGhhbmtzIScpCgoKY2xhc3MgTG9nZ2VyOgogICAgZGVmIHdyaXRlX3RvX2xvZyhzZWxmLCB0ZXh0KToKICAgICAgICBwcmludCgnTE9HOiAnLCB0ZXh0KQoKCnBpenphU3RvcmFnZSA9IFBpenphU3RvcmFnZSgpCmN1c3RvbWVyID0gQ3VzdG9tZXIoJ2JpbGwnLCBwaXp6YVN0b3JhZ2UpCmZhdEN1c3RvbWVyID0gRmF0Q3VzdG9tZXIoJ2JvYicsIHBpenphU3RvcmFnZSwgIExvZ2dlcigpKQoKY3VzdG9tZXIuZWF0KCkKcHJpbnQocGl6emFTdG9yYWdlLmNvdW50KQoKZmF0Q3VzdG9tZXIuZWF0KCkKcHJpbnQocGl6emFTdG9yYWdlLmNvdW50KQ==