Python之多態


什么是多態?

多態指的是一類事物有多種形態

動物有多種形態:人,狗,豬

多態:指的是定義角度

多態性:指的是使用角度


import abc
# 多態:同一種事物的多種形態,動物分為:豬類,人類
class Animal(metaclass=abc.ABCMeta):   
    @abc.abstractmethod  # 子類必須繼承
    def run(self):
        pass


class pig(Animal):
    def run(self):   # 繼承父類必須有這個方法
        print('pig is walking')
    pass

class pepple(Animal):
    def run(self):
        print('pepple is walking')



peo1=pepple()
pig1=pig()
# peo1.run()
# pig1.run()


# 多態性:一種調用方式,多種執行結果
依賴於:
'''
1、繼承
'''
# 定義統一的接口,可以傳入不同類型的值,但是調用的邏輯都一樣,執行的結果卻不一樣
def fun(obj):  # obj 這個參數沒有類型限制,可以傳入不同的值
    obj.run()  # 大家都繼承 animal 類,都有 run,但執行的結果不一樣

fun(peo1)
fun(pig1)

pepple is walking
pig is walking
不同類型的值,調用同一接口,出現不同的結果
==================

l=[1,2,3,4]
s='hello'
t=(4,5,6,7,8)   # 3個不同類型的值
def fun1(obj):  # 定義統一接口
    return obj.__len__()

print(fun1(l))
print(fun1(s))
print(fun1(t))
返回不一樣的結果
4
5
5


為什么要用多態性(多態性的好處)

其實大家從上面多態性的例子可以看出,我們並沒有增加什么新的知識,也就是說python本身就是支持多態性的,這么做的好處是什么呢?

1.增加了程序的靈活性

  以不變應萬變,不論對象千變萬化,使用者都是同一種形式去調用,如func(animal)

2.增加了程序額可擴展性

  通過繼承animal類創建了一個新的類,使用者無需更改自己的代碼,還是用func(animal)去調用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM