Python 使用typing包的overload注解实现函数重载,示例如下:
import typing
class QImage(QPaintDevice):
@typing.overload
def __init__(self) -> None: ...
@typing.overload
def __init__(self, size: QtCore.QSize, format: 'QImage.Format') -> None: ...
@typing.overload
def __init__(self, width: int, height: int, format: 'QImage.Format') -> None: ...
@typing.overload
def __init__(self, data: bytes, width: int, height: int, format: 'QImage.Format') -> None: ...
@typing.overload
def __init__(self, data: PyQt5.sip.voidptr, width: int, height: int, format: 'QImage.Format') -> None: ...
@typing.overload
def __init__(self, data: bytes, width: int, height: int, bytesPerLine: int, format: 'QImage.Format') -> None: ...
@typing.overload
def __init__(self, data: PyQt5.sip.voidptr, width: int, height: int, bytesPerLine: int, format: 'QImage.Format') -> None: ...
@typing.overload
def __init__(self, xpm: typing.List[str]) -> None: ...
@typing.overload
def __init__(self, fileName: str, format: typing.Optional[str] = ...) -> None: ...
@typing.overload
def __init__(self, a0: 'QImage') -> None: ...
@typing.overload
def __init__(self, variant: typing.Any) -> None: ...