29 lines
848 B
Python
29 lines
848 B
Python
from typing import Callable, TYPE_CHECKING
|
|
|
|
from source.gui.position import Value
|
|
from source.type import DistanceFunc
|
|
|
|
if TYPE_CHECKING:
|
|
pass
|
|
|
|
|
|
class Unit:
|
|
"""
|
|
Cette classe représente une unité de position (px, vw, ...).
|
|
"""
|
|
|
|
def __init__(self, converter: Callable[[float], DistanceFunc]):
|
|
self.converter = converter
|
|
|
|
def __mul__(self, other: float): # opérateur *
|
|
"""
|
|
Lorsque que cet object est multiplié avec une valeur, renvoie un objet Value
|
|
utilisant le convertisseur de l'unité.
|
|
:param other: l'autre élément utilisé dans la multiplication.
|
|
:return: l'objet Value
|
|
"""
|
|
|
|
return Value(self.converter(other))
|
|
|
|
def __rmul__(self, other): # opérateur *, lorsque cet objet est situé à droite de l'opération
|
|
return self.__mul__(other)
|