首页>数据科学> 《Python中方法重载完整指南》(含示例)
重载是指当你向一个函数、方法或运算符传递不同的参数时,它能够以不同的方式工作。Python中的方法重载或函数重载是常用的术语。重载的一些主要优点是,你可以以多种方式使用一个方法,这有助于你保持代码的清洁,并在与团队合作时消除复杂性。
目录
什么是方法重载?
在面向对象的程序设计中,方法重载用于这样的场景:对于一个特定的对象,根据项目要求,可以用多种方式调用一个特定的方法。
本文后面将详细讨论Python中方法重载的例子。
什么是方法重载?
Python中的方法重载与方法重载类似,只是方法重载发生在子类和超类之间。在方法被调用时,它有相同的参数。然而,由于一些功能被超类重写,它们的行为是不同的。
方法重写的例子
X类。
def method1(self):
print('我是X类的第一个特征')
def method2(self):
print('我是X类的第二个特征')
类Y(X)。
def method1(self):
print('我是Y类中X类的修改后的第一个特征')
def method3(self):
print('我是Y类的一个特征')
obj = Y()
obj.method1()
输出。
我是X类在Y类中修改的第一个特征
method1被类Y重载了。
Python中的方法重载
在Python中方法重载的问题是,Python默认不支持它。然而,有一些变通方法可以做到这一点。
问题所在
让我们来看看下面的代码。
def add(a, b):
s = a + b
print(s)
def add(a, b, c):
s = a + b + c
print(s)
# add(8, 9)显示错误
add(8, 9, 2)
乍一看,这段代码看起来不错,但是当你试图用两个参数执行它时,Python会显示一个错误,因为在Python中,当你有多个同名但参数数量不同的方法时,只能使用最新定义的方法。
在Python中,我们有两种不同的方法可以克服这个方法重载的问题。
1:根据参数的数据类型不同,使用相同的方法
我们可以看到一个参数来了解数据类型,同时还有*args,允许在Python中向一个方法传递可变数量的参数。然后我们可以使用if语句来控制方法如何根据输入的情况进行操作。
代码。
def add(dt, *args):
如果dt =='int':
s = 0
如果dt =='str':
s = "
for x in args:
s = s + x
print(s)
add('int', 11, 9)
add("str", "Hello,", "How are you?" )
输出。
20
你好,你好吗?
这是在Python中实现方法重载的第一个变通方法。
2:使用多重调度装饰器 (更有效的方法)
多重调度装饰器不是一个变通的方法,它的工作原理和它应该的完全一样。你可以使用 pip3 来安装它。
pip3安装多重分配器
代码。
from multiple dispatch import dispatch
@dispatch(int,int) #用于2个整数参数
def add(n1,n2):
s = n1 + n2
print(s)
@dispatch(int,int,int) #用于3个整数参数
def add(n1,n2,n3):
s = n1 + n2 + n3
print(s)
@dispatch(float,float,float) #用于浮动参数
def add(n1,n2,n3):
s = n1 + n2 + n3
print(s
add(5,2)
add(6,1,4)
加(3.4,1.2,5.6)
输出。
7
11
10.2
在执行时,调度器会产生一个新的对象,存储方法的不同实现,并根据调用方法时传递的参数类型和数量来决定选择哪种方法。这样一来,Python中的重载方法就更有效率了。
结论
如果你想进入数据科学领域,Python是一个很好的第一步。要想深入研究这个主题,你可以查看高级的在线认证课程,如 IIIT-Bangalore与 upGrad 联合 举办的数据科学执行课程。该课程涵盖了该主题的重要方面,并提供了很多额外的好处,如就业援助、1:1导师制、在线支持、现场讲座,以及为想进一步提高技能的爱好者提供的可选附加模块。
Python中的函数和方法有什么区别?
在Python中,有两种函数:内置函数和用户定义的函数。Print()和len()是内置函数的例子。python中的用户定义函数是我们可以自己定义的函数,可以在一个典型的程序中不止一次地完成一个特定的任务。方法和函数一样,只是方法属于一个类,只能在一个对象上调用。(语法:obj.method())
我如何在Python和R之间进行选择?
Python和R是用于数据科学的两种顶级语言。虽然使用什么取决于几个因素,如你的目标公司、项目类型、客户要求等,但一般来说,如果你是一个编程初学者,在工程环境中构建大规模的应用程序,Python是一个不错的选择。另一方面,如果你有先前的编程经验,并希望快速运行数据分析任务,并使用漂亮的图形可视化你的数据,以便在统计上做出更好的决定,那么R就是你的选择。
掌握数据科学需要多长时间?
每个人都有自己的学习进度。虽然,对于一个没有编程经验的初学者来说,你需要接近6-7个月的时间来巩固你的基础知识。之后,这又取决于你的练习程度和要做的项目。如果你遵循一个在线认证,你应该能够在一年左右掌握它。