在本篇内容里下边给大家整理的是关于python函数重载的知识点总结,有需要的朋友们可以学习下。下面让我们一起来学习有关什么是函数重载?python中有函数重载吗?的文章内容吧,希望通过对这篇文章的学习,让大家更好的了解函数的重载。
在我们对函数的使用中,是需要对函数进行重载的,假设我们现在在使用connect函数,我们知道它现在包含的参数有address,这个address参数可能是一个字符串,也有可能是一个列表,例如:
connect('192.168.3.6:8000')
connect(('192.168.3.6', 8000))
在这个内容中,如果我们想对两中写法进行兼容发操作,我们可能会使用下面的这种方法来进行编写:
def connect(address):
if isinstance(address, str):
ip, port = address.split(':')
elif isinstance(address, tuple):
ip, port = address
else:
print('地址格式有错误')
通过这种方法的编写,只能适合在参数类型比较少的情况下进行,因为我们使用的是if-elif-elif的方法,如果面对参数类型很多,我们就要写多个,这样会让代码看起来非常的不直观。为了解决这个问题,我们就可以使用重载的方法,将几个相同的函数名字进行定义,但是对它们的参数类型以及数量要设置不同。这样可以实现不同的代码逻辑。来看一段代码:
from functools import singledispatch
@singledispatch
def connect(address):
print(f' 传输参数类型为:{type(address)},不是有效类型')
@connect.register
def _(address: str):
ip, port = address.split(':')
print(f'参数为字符串,IP是:{ip}, 端口是:{port}')
@connect.register
def _(address: tuple):
ip, port = address
print(f'参数为元组,IP是:{ip}, 端口是:{port}')
connect('192.168.3.6:8000')
connect(('192.168.3.6 8000))
connect(246)
在这段代码中,我们首先是对函数进行了调用,函数的名字一直都是connect,它可以传递不同的参数类型,所以运行结果也会不一样,使用singledispatch的方法对函数进行装饰,那么这个函数就会是我们一直调用的函数。最后的运行结果:
参数为字符串,IP是:192.168.3.6,端口是:8000
参数为元组,IP是:192.168.3.6,端口是:8000
传输参数类型为:<class ‘int’>,不是有效类型
以上就是关于什么是函数重载?python中有函数重载吗的全部内容,希望对大家的学习有所帮助,想要了解更多Python函数重载的知识,可以继续关注学习哦!
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。