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)

输出:

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

尾语

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

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

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

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

相关推荐
流着口水看上帝几秒前
JavaScript学习路线
学习
Ting丶丶1 分钟前
安卓应用安装过程学习
android·学习·安全·web安全·网络安全
被猫枕的咸鱼1 分钟前
项目学习:仿b站的视频网站项目03-注册功能
学习
檀越剑指大厂6 分钟前
【Python系列】 Base64 编码:使用`base64`模块
开发语言·python
誓约酱9 分钟前
(动画)Qt控件 QLCDNumer
开发语言·c++·git·qt·编辑器
夫琅禾费米线10 分钟前
leetcode2650. 设计可取消函数 generator和Promise
开发语言·javascript·leetcode·ecmascript
小火炉Q16 分钟前
02 python基础 python解释器安装
人工智能·python·神经网络·机器学习·网络安全·自然语言处理
@小博的博客20 分钟前
C++初阶学习第十三弹——容器适配器和优先级队列的概念
开发语言·数据结构·c++·学习
Dola_Pan24 分钟前
C语言:函数指针精讲
c语言·开发语言
尘浮生24 分钟前
Java项目实战II基于SpringBoot的共享单车管理系统开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·微信小程序·小程序