Я работаю над музыкальным приложением на Python и хотел бы использовать модуль фракций для обработки подписи времени между прочим. Моя проблема заключается в том, что фракции получают упрощенной, а именно:Python: избегая упрощения фракций
>>> from fractions import Fraction
>>> x = Fraction(4, 4)
>>> x
Fraction(1, 1)
Тем не менее, важно с музыкальной точки зрения, что 4/4 остается 4/4, даже если он равен 1. Есть ли встроенный способ избегать этого поведения?
Спасибо!
Нет проблем, я понял это было лучше спросить, прежде чем изобретать колесо. И действительно, они не являются фракциями, но это упростило бы их рассматривать как таковые в других частях приложения. –
Даже не изобретайте класс для этого. Используйте 'namedtuple'. –
На самом деле, я бы ... но это вопрос теории музыки. Это не просто пара чисел, есть некоторые разумные операции, которые вы, возможно, захотите сделать на сигнатуре времени; добавьте или удалите удары, беря от 3/4 до 4/4, сделайте 3-против-2 с 4/4 до 12/8, разделите планку с 5/4 на 3/4 и 2/4 и другие. Имеет смысл иметь для них методы. –