копировать пустые задекорированные методы в подклассах?
А зачем их копировать? Если я понял о чем речь, не надо. И так полезет за ними в родительский, т.е. копировать совсем не стоит. Ну в том который будешь использовать абстрактных быть не должно
А оверлод какой именно и зачем лично я не понял Для абстрактного метода - тем более не понял о чем речь (мб можно поконкретнее, например, зачем понадобилось перегрузить абстрактный метод)
Вот например class ABCClass(ABC): @overload def func(self) -> int: ... @overload def func(self, a: str) -> str: ... @abstractmethod def func(self, a: Optional[str] = None) -> Union[int, str]: pass class Derived(ABCClass): def func(self, a: Optional[str] = None) -> Union[int, str]: if a is None: return 123 return a Я сейчас примерно так сделал, и mypy ругается, что сигнатура Derived не соответствует сигнатуре базового класса
Зачем оверлоад когда есть аргументы по умолчанию
Не понял, при чем тут аргументы по умолчанию?
Перегрузка нужна чтобы по-разному вызывать функцию? Вроде бы да. Хотя начнем с другого. Зачем тебе оверлоад?
Чтобы указать, что если в "func" не передано "a", то вернётся int, а если передано, то str
Понял, звучит как проеб где-то в архитектуре.
Обсуждают сегодня