Skip to main content
The 2026 Annual Developer Survey is live— take the Survey today!
deleted 47 characters in body
Source Link
mkrieger1

(For guys who got here by googling or else..)

Just use Pydantic or such tools.. & take a look to singledispatchsingledispatch for some cases:

from functools import singledispatch

@singledispatch
def process(value):
    raise NotImplementedError(f"Unsupported type: {type(value)}")

@process.register
def _(value: int):
    return f"Processing integer: {value}"

@process.register
def _(value: float):
    return f"Processing float: {value}"

@process.register
def _(value: str):
    return f"Processing string: {value}"

if __name__ == `__main__`"__main__":
    print(process(10))        # out: Processing integer: 10
    print(process(10.5))      # out: Processing float: 10.5
    print(process("Hello"))   # out: Processing string: Hello

(For guys who got here by googling or else..)

Just use Pydantic or such tools.. & take a look to singledispatch for some cases:

from functools import singledispatch

@singledispatch
def process(value):
    raise NotImplementedError(f"Unsupported type: {type(value)}")

@process.register
def _(value: int):
    return f"Processing integer: {value}"

@process.register
def _(value: float):
    return f"Processing float: {value}"

@process.register
def _(value: str):
    return f"Processing string: {value}"

if __name__ == `__main__`:
    print(process(10))        # out: Processing integer: 10
    print(process(10.5))      # out: Processing float: 10.5
    print(process("Hello"))   # out: Processing string: Hello

Just use Pydantic or such tools & take a look to singledispatch for some cases:

from functools import singledispatch

@singledispatch
def process(value):
    raise NotImplementedError(f"Unsupported type: {type(value)}")

@process.register
def _(value: int):
    return f"Processing integer: {value}"

@process.register
def _(value: float):
    return f"Processing float: {value}"

@process.register
def _(value: str):
    return f"Processing string: {value}"

if __name__ == "__main__":
    print(process(10))        # out: Processing integer: 10
    print(process(10.5))      # out: Processing float: 10.5
    print(process("Hello"))   # out: Processing string: Hello
Source Link
BlackCatDevel0per

(For guys who got here by googling or else..)

Just use Pydantic or such tools.. & take a look to singledispatch for some cases:

from functools import singledispatch

@singledispatch
def process(value):
    raise NotImplementedError(f"Unsupported type: {type(value)}")

@process.register
def _(value: int):
    return f"Processing integer: {value}"

@process.register
def _(value: float):
    return f"Processing float: {value}"

@process.register
def _(value: str):
    return f"Processing string: {value}"

if __name__ == `__main__`:
    print(process(10))        # out: Processing integer: 10
    print(process(10.5))      # out: Processing float: 10.5
    print(process("Hello"))   # out: Processing string: Hello
lang-py