minus-squareeternacht@programming.devtoPython@programming.dev•[Answered] Typehints for functions that have variable signatureslinkfedilinkarrow-up1·1 year agoThis is the real answer, overloads are meant for exactly this purpose. It’ll be something like this: from typing import Literal, overload @overload def foo() -> Data: … @overload def foo(return_more: Literal[True]) -> tuple[Data, Data]: … def foo(return_more: bool = False) -> Data | tuple[Data, Data] ... if return_more: return data, more_data return data linkfedilink
This is the real answer, overloads are meant for exactly this purpose.
It’ll be something like this: