File: LP6E/Chapter40/metaclass3.py
# A simple function can serve as a metaclass too
def MetaFunc(classname, supers, classdict):
print('In MetaFunc:', classname, supers, classdict, sep='\n...')
return type(classname, supers, classdict)
class Super:
pass
print('Making class')
class Hack(Super, metaclass=MetaFunc): # Run simple function at end
data = 1 # Function returns class
def meth(self, arg):
return self.data + arg
print('Making instance')
X = Hack()
print('Attrs:', X.data, X.meth(2))