From 7b881b81f46b62171fc0d6b217281b925a9ca493 Mon Sep 17 00:00:00 2001 From: Mike Bloy Date: Sun, 7 Jan 2024 16:44:15 -0600 Subject: [PATCH] ex 7.5 --- mymeta.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 mymeta.py diff --git a/mymeta.py b/mymeta.py new file mode 100644 index 0000000..135c9df --- /dev/null +++ b/mymeta.py @@ -0,0 +1,24 @@ +class mytype(type): + @staticmethod + def __new__(meta, name, bases, __dict__): + print('Creating class :', name) + print('Base classes :', bases) + print('Attributes :', list(__dict__)) + return super().__new__(meta, name, bases, __dict__) + + +class myobject(metaclass=mytype): + pass + + +class Stock(myobject): + def __init__(self, name, shares, price): + self.name = name + self.shares = shares + self.price = price + + def cost(self): + return self.shares * self.price + + def sell(self, nshares): + self.shares -= nshares