python-mastery/mymeta.py
2024-01-07 16:44:15 -06:00

25 lines
593 B
Python

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