python抽象基類用法例項分析

2022-09-28 02:03:10 字數 977 閱讀 6174

定義抽象類,需要使用abc模組,該模組定義了乙個元類(abcm和裝飾器 @abstractmethod, @abstract程式設計客棧property

如果要例項化繼承了www.cppcns.comfoo 的子類,子類必須實現程式設計客棧了foo所有的抽象方法(跟j**a一樣),否則例項化報錯。

抽象類不能直接例項化

#!coding=utf-8

from abc import abcmeta, abstractmethod, abstractproperty

class foo:

__metaclass__ = abcmeta

@abstractmethod

#在python3.0中 使用 class foo(metaclass=abcmeta)語法

def spam(self, a, b):

pass

@abstractproperty

def name(self):

pass

class bar(foo):

def spam(self, a, b):

print a, b

def name():

pass

b = bar()

b.spam(1,2)

抽象基類支援對已經存在的類進行註冊,使其屬於該基類,使用register()方法

向抽象基類註冊某個類,對於註冊類中的例項,涉及後續基類的類檢測操作比如(isinstance, issubclass) 將返回true,向抽象基類註冊某個類時,不會檢查該類是否實現了任何抽象方法或特性,這種註冊過程只會影響型別檢查

class crok(object):

def spam(self, a, c):

print "gork.span"

foo.register(grok)

本文標題: python抽象基類用法例項分析

本文位址: /jiaoben/python/125863.html

python抽象基類理解

抽象基類它提供了介面,但是又沒有去把介面實現的類,需要由子類完成。感覺它就是老闆,只告訴你要完成專案a,你接到專案a後 繼承 你自己去把它完成。抽象基類特點 1.繼承類必須實現抽象基類的方法 2.抽象基類無法例項化 1.why 抽象基類?譬如要開發乙個專案,你要規定專案開發者要去完成某些介面,有些介...

python 中抽象基類簡介

簡介 python中雖然鴨子型別很強大,但鴨子型別也有著不足。具體關於分類可以參照水禽的分類理解。因此,參照水禽的分類學演化,我建議在鴨子型別的基礎上增加白鵝型別 goose typing 白鵝型別指,只要cls是抽象基類,即cls的元類是abc.abcmeta,就可以使用isinstance ob...

python3 抽象基類

1,抽象基類 abstract base class或者 abcs 用於 定義一組必須被類的 鴨子型別 例項實現的方法與屬性,可以繼承抽象基類本身的類作為類的例項,但是必須提供所有適合的方法。from collections.abc import container class testcontai...