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