Python教程

python多态性与方法重载

本文主要是介绍python多态性与方法重载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.python是没有方法重载的

函数重载主要是为了解决两个问题。

1。可变参数类型。 因为 python 可以接受任何类型的参数

2。可变参数个数。 那些缺少的参数设定为缺省参数

 

2.不同对象调用同一接口,表现出不同的状态,即是多态(鸭子类型)

class F1:
pass

# 假设,S1是我们的正统类,它继承于根正苗红的F1,是我们的正统类
class S1(F1):
def show(self):
print('S1.show')

# S2是路人甲,是个歪瓜裂枣,但是他自己也有一个叫show的方法。
class S2:
def show(self):
print('S2.show')


# 在Java或C#中定义函数参数时,必须指定参数的类型,也即是说,我们如果用
# Java写下面的Func,需要告知,obj是F1类还是其他什么东西。
# 如果限定了F1,那么S2是不可以被采纳的。
# 然而,在Python中,一切都是Obj,它不care你到底是什么类,直接塞进去就可以

def Func(obj):
"""Func函数需要接收一个F1类型或者F1子类的类型"""
obj.show()

s1_obj = S1()
Func(s1_obj) # 在Func函数中传入S1类的对象 s1_obj,执行 S1 的show方法,结果:S1.show

s2_obj = S2()
Func(s2_obj) # 在Func函数中传入Ss类的对象 ss_obj,执行 Ss 的show方法,结果:S2.show

这篇关于python多态性与方法重载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!