定義乙個介面或抽象基類

2021-09-27 04:30:31 字數 938 閱讀 4425

定義乙個類作為介面或者抽象基類,這樣可以再次之上執行型別檢查,並且確保子類中實現特定的方法。

from abc import abcmeta,abstractclassmethod

class istream(metaclass=abcmeta):

@abstractclassmethod

def read(self,maxbytes=-1):

pass

@abstractclassmethod

def write(self ,data):

pass

抽象基類的核心特徵是不可以被例項化,抽象基類是用來給其他類當作基類使用,子類中需要實現基類中的方法。

子類中需要實現基類中的方法才可以

class socketstream(istream):

def read(self,maxbytes=-1):

...def write(self ,data):

...

抽象基類的主要用途是強制規定所需的介面程式設計

def serialize(obj,stream):

if not isinstance(stream,istream):

raise typeerror('expected an istream')

以上函式中isinstance用於檢查兩個obj型別是否相同

抽象化基類同時也允許其他的類向其註冊

import io

istream.register(io.iobase)

f=open('foo.txt')

isinstance(f,istream)

collections中定義了多種容器,迭代器,numbers中定義了多種數值物件,io中定義了多種io抽象基類。

django中如何定義乙個抽象模型基類

1.在專案目錄項建立乙個python包,取名db 名稱可自己取 2.db包中建立乙個base model.py檔案,名稱可自己取 3.base model.py中定義如下 from django.db import models class basemodel models.model 模型抽象基類...

抽象乙個形狀類

阮寶同學期待著暑假來臨,知道c 不好好複習麻煩不小。沒有多型性,那就不叫物件導向,老師不划重點也能猜到。嘿嘿,自己做個經典題,怎麼變題也不怕。老濕,再難的題還有木有?輸入四個數,前兩個是矩形的長和寬,後兩個是三角形的底邊長和高。分兩行輸出兩個數,第乙個是矩形的面積,第二個是三角形的面積。3.5 6....

定義乙個類

定義乙個類 當你宣告乙個類,你需要列出物件應有的所有變數和所有函式 被稱為屬性和方法.3.1.1中顯示了乙個類的構成.注意在大括號 內你只能宣告變數或者函式.3.1.2中顯示了如何在乙個類中定義三個屬性和兩個方法.1.class name extends another class 2.name n...