L3-Bataille-Navale/source/gui/position/Unit.py

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)