函数重载是指可以使用相同的函数名,但是函数参数类型和/或数量不同的多个函数。
Python 不支持函数重载,因为 Python 是一种动态类型语言,函数参数类型不需要在代码中声明,并且 Python 中的函数参数数量也可以是可变的。这意味着在同一个作用域内定义两个或两个以上具有相同名称但参数列表不同(包括参数类型、个数等)的函数是不合法的。

虽然 Python 不支持函数重载,但可以使用一些技巧来模拟函数重载的效果。其中最常见的方法是使用默认参数值和可变参数列表。

下面是一个简单的示例:

def my_func(a, b=None, c=None):
    if b is None and c is None:
        print(f"调用了 my_func({a}) 函数")
    elif c is None:
        print(f"调用了 my_func({a}, {b}) 函数")
    else:
        print(f"调用了 my_func({a}, {b}, {c}) 函数")

# 调用函数,输出结果
my_func(1)          # 输出:调用了 my_func(1) 函数
my_func(1, 2)       # 输出:调用了 my_func(1, 2) 函数
my_func(1, 2, 3)    # 输出:调用了 my_func(1, 2, 3) 函数

在上面的示例中,我们通过设置 bc 的默认参数为 None,然后利用条件判断来确定具体调用哪个函数,从而达到了类似函数重载的效果。

需要注意的是,这种方式仅是一种模拟函数重载的方法,适用于少量参数和定义较少的函数。在 Python 中,通常不使用函数重载,因为它会使代码更加复杂。而是尽可能使用默认参数、可变参数或其他技巧来实现相同的效果。