一、概念
- Python中的一个装饰器,用于将一个普通函数转换为单分派泛型函数
二、作用
- 可以根据第一个参数的类型自动选择对应的实现,而不需要使用多个if语句或switch语句来判断参数的类型。
三、实战
from functools import singledispatch@singledispatch
def foo(arg):print("Default implementation for", arg)@foo.register(int)
def _(arg):print("Implementation for int:", arg)@foo.register(int)
def _(arg):print("Implementation for str:", arg)@foo.register(list)
def _(arg):print("Implementation for list:", arg)foo(123) # Output: Implementation for int: 123
foo("hello") # Output: Implementation for str: hello
foo(3.14) # Output: Default implementation for 3.14
foo(['1']) # Implementation for list: ['1']