什么是Python中的方法重载及其工作方式?

举报
Yuchuan 发表于 2021/03/05 21:36:46 2021/03/05
【摘要】 Python中的方法重载及其工作方式的详解

Python中,两个方法不能具有相同的名称。Python中的方法重载是一项功能,它允许同一运算符具有不同的含义。在本文中,我们将按以下顺序介绍Python中的方法重载功能以及如何将其用于方法重载:

什么是重载

重载是功能或运算符根据传递给该函数的参数或运算符所作用的操作数以不同方式表现的能力。

使用重载的一些优点是:

  • 重载方法可提高可重用性。例如,我们可以编写一个方法并将其重载,而不是编写仅稍有不同的多个方法。

  • 重载还可以提高代码的清晰度并消除复杂性。

重载是一个非常有用的概念。但是,它具有许多缺点

  • 在跨继承边界使用重载时,可能会造成混乱。当使用过多时,管理重载的功能变得很麻烦。

Python中的方法重载

在Python中,您可以创建可以以不同方式调用的方法。因此,您可以拥有一个包含零个,一个或多个参数的方法。根据方法定义,我们可以使用零个,一个或多个参数来调用它。

给定单个方法或函数,参数数量可以由您指定。以不同方式调用同一方法的过程称为方法重载。

方法重载示例

现在您知道什么是Python中的方法重载,让我们举个例子。在这里,我们使用一个方法 Hello()创建一个类。此方法的第一个参数设置为“无”。这将使我们可以选择使用或不使用参数来调用它。

一个对象也是基于该类创建的,我们将使用零和一个参数来调用其方法。

范例1:

#!/usr/bin/env python
class Person:
def Hello(self, name=None):
if name is not None:
print('Hello ' + name)
else:
print('Hello ')
# Create instance
obj = Person()
# Call the method
obj.Hello()
# Call the method with a parameter
obj.Hello('Edureka')

输出:

你好
你好Edureka

为了澄清方法重载,我们现在可以通过两种方式调用方法Hello():

obj.Hello()
obj.Hello('Edureka')

在上面的示例中,我们创建了一个方法,该方法可以使用比定义所允许的参数更少的参数来调用。同样,它不限于两个变量,您的方法可以有更多可选的变量。

现在让我们再举一个例子来了解python中的方法重载。

范例2:

在下面的示例中,我们将重载area方法。如果没有参数,则返回0。并且,如果有一个参数,则返回值的平方并假定您正在计算平方面积。另外,如果我们有两个参数,则它返回两个值的乘积,并假设您正在计算矩形的面积。

# class
class Compute:
# area method
def area(self, x = None, y = None):
if x != None and y != None:
return x * y
elif x != None:
return x * x
else:
return 0
# object
obj = Compute()
# zero argument
print("Area Value:", obj.area())
# one argument
print("Area Value:", obj.area(4))
# two argument
print("Area Value:", obj.area(3, 5))

上面的代码将为我们提供以下输出:

面积值:0
面积值:16
面积值:15

这样,我们就结束了本文的结尾。我希望您了解什么是python中的方法重载及其工作方式。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。