python的抽象類和抽象方法


class Foo(object):
    def exec(self):
        raise NotImplementedError('請實現exec方法')

class A(Foo):
    pass
obj=A()
obj.exec()

  類A繼承類Foo,因而擁有類Foo的所有屬性。類A實例化一個對象obj,obj調用exec()方法,如果類A自己沒有定義exec方法,就會拋出異常。

from abc import abstractmethod,ABCMeta

class Foo(metaclass=ABCMeta):
    @abcstractmethod
    def exec(self):
        pass

class A(Foo):
    pass
obj=A()

  從abc模塊調用類abstractmethod和類ABCMeta,自己定義類Foo,繼承抽象類ABCMeta,在類Foo中定義exec方法,並添加裝飾器abcstractmethod。定義類A繼承類Foo,並實例化對象obj,類A中必須有類Foo中的方法否則就會拋出異常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM