Мне нужно отслеживать единицы измерения в значениях типа float и int в Python, но я не хочу использовать внешний пакет, например, magnitude или другие, потому что мне не нужно выполнять операции со значениями. Вместо этого все, что я хочу - это иметь возможность определять числа с плавающей запятой и целые числа, которые имеют атрибут unit (и я не хочу добавлять новую зависимость для чего-то такого простого). Я пытался сделать:
class floatwithunit(float):
__oldinit__ = float.__init__
def __init__(self, *args, **kwargs):
if 'unit' in kwargs:
self.unit = kwargs.pop('unit')
self.__oldinit__(*args, **kwargs)
Но это совсем не работает:
In [37]: a = floatwithunit(1.,unit=1.)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/Users/tom/<ipython console> in <module>()
TypeError: float() takes at most 1 argument (2 given)
Any suggestions?