我正在研究Python中的音乐应用程序,并希望使用分数模块来处理时间签名等。我的问题是分数得到简化,即:
>>> from fractions import Fraction
>>> x = Fraction(4, 4)
>>> x
Fraction(1, 1)
然而,从音乐的角度来看,重要的是4/4保持4/4,即使它等于1.是否有任何内置方法可以避免这种行为?
谢谢!
答案 0 :(得分:9)
是:为它制作一个自定义类。
音乐时间签名不是分数,因此用数学类来表示它们是没有意义的。
答案 1 :(得分:3)
您应该使用除Fraction之外的某些数据结构。只是一个简单的元组是最简单的,虽然你也可以创建自己的类。如果需要进行计算,请对构成时间签名的各个整数进行计算。
答案 2 :(得分:0)
不,没有 - GCD的划分内置于Fraction类操作中。你可能想要创建一个自定义类的其他原因,至少如果你正在使用乐谱,是: