In [1]:
wcs = set()
class Chroma():
def __init__(self, name):
self.name = name
wcs.add(self)
def __repr__(self):
return self.name
def __call__(self, f):
print("called")
def new_call(i):
return f(self, i)
self.__call__ = new_call
C = Chroma("C")
D = Chroma("D")
E = Chroma("E")
In [7]:
C.test()
In [3]:
class Pitch():
def __init__(self, chroma, octave):
self.chroma = chroma
self.octave = octave
def __repr__(self):
return self.chroma.__repr__() + str(self.octave)
for chroma in wcs:
chroma(Pitch)
In [4]:
C(1)