日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python3中的抽象類是什么?怎么用?

之前講過接口類后,我們來講講它的好兄弟抽象類。聽到名字之后,小伙伴就有點(diǎn)害怕它的難度了。小編原來也是這么以為的,學(xué)習(xí)了完整的資料后,才發(fā)現(xiàn)自己是想錯了。有了小編為大家探路,大家可以放心的來學(xué)習(xí)python3中的抽象類啦。其他的我們就不講,保留一點(diǎn)神秘,具體內(nèi)容大家一起學(xué)習(xí)下。

從設(shè)計角度去看,如果類是從現(xiàn)實(shí)對象抽象而來的,那么抽象類就是基于類抽象而來的。

從實(shí)現(xiàn)角度來看,抽象類與普通類的不同之處在于:抽象類中有抽象方法,該類不能被實(shí)例化,只能被繼承,且子類必須實(shí)現(xiàn)抽象方法。這一點(diǎn)與接口有點(diǎn)類似,但其實(shí)是不同的

#一切皆文件
import abc #利用abc模塊實(shí)現(xiàn)抽象類
 
class All_file(metaclass=abc.ABCMeta):
    all_type='file'
    @abc.abstractmethod #定義抽象方法,無需實(shí)現(xiàn)功能
    def read(self):
        '子類必須定義讀功能'
        pass
 
    @abc.abstractmethod #定義抽象方法,無需實(shí)現(xiàn)功能
    def write(self):
        '子類必須定義寫功能'
        pass
 
# class Txt(All_file):
#     pass
#
# t1=Txt() #報錯,子類沒有定義抽象方法
 
class Txt(All_file): #子類繼承抽象類,但是必須定義read和write方法
    def read(self):
        print('文本數(shù)據(jù)的讀取方法')
 
    def write(self):
        print('文本數(shù)據(jù)的讀取方法')
 
class Sata(All_file): #子類繼承抽象類,但是必須定義read和write方法
    def read(self):
        print('硬盤數(shù)據(jù)的讀取方法')
 
    def write(self):
        print('硬盤數(shù)據(jù)的讀取方法')
 
class Process(All_file): #子類繼承抽象類,但是必須定義read和write方法
    def read(self):
        print('進(jìn)程數(shù)據(jù)的讀取方法')
 
    def write(self):
        print('進(jìn)程數(shù)據(jù)的讀取方法')
 
wenbenwenjian=Txt()
 
yingpanwenjian=Sata()
 
jinchengwenjian=Process()
 
#這樣大家都是被歸一化了,也就是一切皆文件的思想
wenbenwenjian.read()
yingpanwenjian.write()
jinchengwenjian.read()
 
print(wenbenwenjian.all_type)
print(yingpanwenjian.all_type)
print(jinchengwenjian.all_type)

擴(kuò)展:

不管是抽象類還是接口類:面向?qū)ο蟮拈_發(fā)規(guī)范 所有的接口類和抽象類都不能實(shí)例化

java :

java里的所有類的繼承都是單繼承,所以抽象類完美的解決了單繼承需求中的規(guī)范問題

但對于多繼承的需求,由于java本身語法的不支持,所以創(chuàng)建了接口Interface這個概念來解決多繼承的規(guī)范問題

python中沒有接口類:

python中自帶多繼承 所以我們直接用class來實(shí)現(xiàn)了接口類

python中支持抽象類: 一般情況下單繼承不能實(shí)例化且可以實(shí)現(xiàn)python代碼

關(guān)于拓展里的類知識,小伙伴們還是要著重注意一下,畢竟小編發(fā)現(xiàn)這是出錯比較多的點(diǎn)。


網(wǎng)站題目:創(chuàng)新互聯(lián)Python教程:python3中的抽象類是什么?怎么用?
分享URL:http://www.5511xx.com/article/cdcppih.html