音乐工具与乐谱知识全解析
1. 乐器的发音法与数据访问
在乐器相关的操作中,发音法列表是一个重要的概念。在基础乐器类(InstrumentBase)中包含发音法列表,结合父引用,能轻松累积乐器的完整发音法集合。具体做法是先获取乐器自身的发音法,再通过父引用找到乐器所属的家族,添加那里的发音法,接着再沿着指针找到乐器类别,依此类推。以下是 InstrumentBase 类中相关实现的代码:
class InstrumentBase(object):
def __init__(self, name, parent=None):
self.__name = name
self.__parent = parent
self.__articulations = []
def get_native_articulations(self):
return list(self.__articulations) # 列表可变,但每个发音法不可变
def get_articulations(self):
art_list = self.get_native_articulations()
parent = self.parent
while parent is not None:
art_list.extend(parent.get_native_articulations())
parent = parent.parent
return art_list
超级会员免费看
订阅专栏 解锁全文
74

被折叠的 条评论
为什么被折叠?



