Dynamic Dictionary Creation
Scott David Daniels
Scott.Daniels at Acm.Org
Sun Dec 8 15:01:59 EST 2002
How about something like:
class NoteLen(object):
def __init__(self, ticksPerQuarterNote):
self.TicksPerNote = ticksPerQuarterNote * 4
self.data = {}
def fromInt(self, denominator):
return int(self.TicksPerNote // denominator)
def ticks(self, name):
try:
return self.data[name]
except KeyError:
pass
try:
result = self.fromInt(int(name))
except ValueError:
# the int(name) failed, assume it is n+n+n
parts = name.split('+')
assert len(parts) > 1 # must have parts to work
result = 0
for v in [self.ticks(n) for n in parts]:
result += v
self.data[name] = result
return result
getNoteLen = NoteLen(TicksQ).ticks
-Scott David Daniels
More information about the Python-list
mailing list