3 2 抽象基類(abc模組)

2022-09-18 23:15:12 字數 1108 閱讀 9486

實現乙個抽象基類,不適用abc模組

1

class

base:

2def

get(self, key):

3raise

notimplemented45

defset(self, key, value):

6raise

notimplemented78

9class

test(base):

10def

get(self, key):

11return

key12

1314 test =test()

15print(test.get('

key'))

當沒有實現抽象基類的方法的時候,會丟擲異常,但是會有乙個缺點,只有在呼叫方法的時候,才會丟擲異常

實現乙個抽象基類,使用abc模組

1

import

abc234

class base(metaclass=abc.abcmeta):

[email protected]

6def

get(self, key):

7raise

notimplemented89

@abc.abstractmethod

10def

set(self, key, value):

11raise

notimplemented

1213

14class

test(base):

15def

get(self, key):

16return

key17

18def

set(self, key, value):

19return

key, value

2021

22 test =test()

23print(test.get('

key'

))24

print(test.set('

key', '

value

'))

抽象基類(ABC)

我對抽象基類 abstract base class,abc 的理解在兩個點上。第一點是抽象,即高度抽象 第二點是基類,對抽象基類來說,它的存在只是為了作為基類 區別於具體類 不可以被例項化。高度抽象一詞聽起來本身就很 抽象 不妨讓我用 總結 這個詞進行通俗解釋。比方這裡有兩類人,一類只是聾人,另一...

C 基礎 抽象基類(ABC)

抽象基類 abc 即abstract base class利用了基類指標指向派生類物件從而呼叫派生類方法的思想實現c 的隱藏 具體實現則主要用到的是純虛函式 pragma once include stdafx.h include include using std cout using std e...

Python抽象類(abc模組)

抽象類是乙個特殊的類,只能被繼承,不能例項化 其實在未接觸抽象類概念時,我們可以構造香蕉 蘋果 梨之類的類,然後讓它們繼承水果這個基類,水果的基類包含乙個eat函式。但是你有沒有想過,我們可以將香蕉 蘋果 梨例項化,去吃香蕉 蘋果 梨。但是我們卻不能將水果例項化,因為我們無法吃到叫水果的這個東西。所...