Python教程:方法重载

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码

方法重载

方法重载在Python中起着关键作用。

方法有时接受零参数,有时接受一个或多个参数。

当我们以不同的方式调用同一个方法时,这就被称为方法重载。

Python不像其他语言那样默认支持重载方法。

在Python中,两个或多个方法不能有相同的名字,因为方法重载允许我们使同一个操作符具有不同的含义。让我们详细讨论一下方法重载。

如果同一个类中的两个或多个方法采取不同的参数,它们可能有相同的名字。

方法重载的特性允许同一个操作符有多种解释。

重载是指一个方法或操作符可以在同一名称下执行许多功能。

现在,让我们用一个基本的例子来讨论方法重载,在这个例子中,我们用同一个参数执行两个不同的事情。

例子:

python 复制代码
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:702813599
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
class methodOverload:
    def MethodHi (self, user=None):
        if user is not None:
            print('Hello ' + user)
        else:
            print('Hello')
MethodObj = methodOverload()
MethodObj.MethodHi()
MethodObj.MethodHi('Hasnain')

输出:

正如你在这个例子中所看到的,我们创建了一个类methodOverload ,在这个类中我们定义了方法MethodHi ,这个方法将在有名字和没有名字的情况下向用户打招呼。

在该类之后,我们使用该类创建了一个对象实例,并在有参数和无参数的情况下调用它。

这种用不同参数加载函数的方式被称为方法重载。

现在,让我们讨论一下在我们的Python程序中使用方法重载的优势。

优点

在Python程序中使用方法重载有很多优点。

其中一些如下:

  1. 方法重载减少了程序的复杂性、函数或方法。它使用户可以在没有参数、只有一个参数或有多个参数的情况下简单地使用它。

  2. 方法重载提高了代码质量,使其高效,并涵盖了大部分的用例,使我们的应用程序获得成功。

    方法重载增加了程序的可重用性,并使其易于使用。

现在,让我们通过一些方法重载的例子,我们将涵盖方法重载的不同方面。

当我们制作相同的函数,并希望以不同的方式工作时,我们可以使用方法重载。

在同一个方法中使用不同的数据类型

在我们的第一个例子中,我们将制作一个类addition ,并使用不同的数据类型,用同一个方法执行两个任务。当数据类型为整数时,程序会进行检查,那么答案将是数字的加法。

如果数据类型是字符串,答案将是字符串的串联。我们将使用一个for 循环,通过参数并检查所有参数。

如果它们是整数,它们就被加起来。如果它们是字符串,它们将被合并

例子:

python 复制代码
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:702813599
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def addition(datatype, *args):
    if datatype =='int':
        result = 0
        for x in args:
            result = result + x
        print(result)
    if datatype =='str':
        result = []
        for x in args:
            result.append(x)
        print(result[0], result[1])
addition('int',7, 11)
addition('str', 'Hello', 'python')

输出:

在上面的例子中,当我们提供整数作为数据类型与数字相加时,我们收到的是数字的相加。

但是当我们把字符串作为数据类型,并传递字符串时,同一个方法将字符串连接起来并显示结果。

多调度装饰器

现在,让我们来看看另一个有点棘手的例子。

在这个例子中,我们将使用有效的方式来执行方法重载。

我们需要使用下面的命令来安装多重调度装饰器。

python 复制代码
pip install multipledispatch

安装后,我们将把它导入我们的程序中。

它派发了三个整数和三个浮点数,并显示了以下结果。

例子:

python 复制代码
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:702813599
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from multipledispatch import dispatch
@dispatch(int,int,int)
def multiply(oneInt,twoInt,threeInt):
    ans = oneInt * twoInt * threeInt
    print(ans);
@dispatch(float,float,float)
def multiply(oneInt,twoInt,threeInt):
    ans = oneInt * twoInt * threeInt
    print(ans);
multiply(3,7,8)
multiply(3.6,5.9,9.9)

输出:

正如你在上面的例子中所看到的,我们可以使用多个派发装饰器来发送不同的数据类型,并对我们想使用的所有数据类型使用相同的方法来获得结果。

尾语

好了,今天的分享就差不多到这里了!

对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

最后,宣传一下呀~👇👇👇 更多源码、资料、素材、解答、交流 皆点击下方名片获取呀👇👇👇

相关推荐
databook12 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar13 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805113 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_13 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机20 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机21 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机21 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机21 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i21 小时前
drf初步梳理
python·django
每日AI新事件21 小时前
python的异步函数
python