??????? Python作為一門面對(duì)對(duì)象的語(yǔ)言,那么肯定也是有多態(tài)這個(gè)屬性的,這里主要跟C++的多態(tài)做一下類比
????????先看下面的代碼
??????????????????????
????????
這里可以看到,Child,Child2都是Parent的子類,他們分別重寫了父類的print_func函數(shù),因此可以看到下面的結(jié)果
????????這是單獨(dú)打印每個(gè)對(duì)象來(lái)得到的結(jié)果,下面開始看Python的多態(tài)
????????這里可以看到,print_who這個(gè)函數(shù)只是將obj對(duì)象的print_func函數(shù)調(diào)用打印了一下。這里和C++的多態(tài)都是區(qū)別不大的。
????????但是Python的多態(tài)比C++的更要牛逼一些,比如下面這個(gè)類
????????這時(shí)候noChild這個(gè)類跟Parent沒有半點(diǎn)關(guān)系,那么我們調(diào)用print_who還能打印出來(lái)東西嗎?
??????? ?沒錯(cuò),你真的沒有看出,這個(gè)非子類的對(duì)象,只是因?yàn)橛幸粋€(gè)print_func函數(shù),就能通過print_who來(lái)進(jìn)行打印,是不是很神奇??
????????這就是Python與C++在多態(tài)上最大的區(qū)別,Python只要你有一模一樣的函數(shù)存在,那么他就可以按照多態(tài)的處理方式來(lái)給你處理。在有些書中,這個(gè)方法被稱為“鴨子模型”。
歡迎添加QQ群一起學(xué)習(xí)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
