Поскольку аргументы функции python 3.5 могут быть объявлены с типом, но перегрузка по типу аргумента не поддерживается.В частности, у меня есть старое определение класса
class Supplies:
def __init__(self, supp):
if isinstance(supp, list):
self.food = supp[0]
self.water = supp[1]
else:
self.food = supp
self.water = supp
и я хочу преобразовать конструктор для использования объявлений типов.Примерно так:
class Supplies:
def __init__(self, supp: List[int]):
self.food = supp[0]
self.water = supp[1]
def __init__(self, supp: int):
self.food = supp
self.water = supp
за исключением того, что это переопределяет, а не перегружает __init__
.Есть ли здесь разумный обходной путь (поскольку это конструктор, я не могу просто использовать два разных имени функции)?