ホームページ  >  記事  >  バックエンド開発  >  Pythonにはインターフェースがないのでしょうか?

Pythonにはインターフェースがないのでしょうか?

(*-*)浩
(*-*)浩オリジナル
2019-07-06 13:06:495297ブラウズ

インターフェイスは一部のメソッドを定義するだけで、実装はしません。主にプログラム設計で使用されます。必要な機能を設計するだけで、関数は実装しません。これらの関数は別のクラス (B) に継承する必要があります。クラス B は、1 つまたはすべての関数を実装するために使用されます。

Pythonにはインターフェースがないのでしょうか?

#Python にはインターフェイスがありませんが、Python では抽象クラスと抽象メソッドがインターフェイス関数を実装します。インターフェイスはインスタンス化できず、他のクラス継承によってのみ使用できます。対応する機能を実装します。 (推奨学習: Python ビデオ チュートリアル )

個人的には、Python ではインターフェイスはそれほど重要ではないと思います。インターフェイスを継承したい場合は、各メソッドを追加する すべてのメソッドを実装しないとコンパイル エラーが報告されます。すべてのメソッド実装が渡されるクラスを直接定義し、サブクラスにこれらの関数を書き換えさせる方がよいでしょう。

もちろん、すべての実装クラスがインターフェイスの定義に従って記述されなければならないという必須要件がある場合は、そのインターフェイスを使用する必要があります。

抽象クラスと抽象関数を使用してメソッドを実装する

#抽象类加抽象方法就等于面向对象编程中的接口
from abc import ABCMeta,abstractmethod
 
class interface(object):
    __metaclass__ = ABCMeta #指定这是一个抽象类
    @abstractmethod  #抽象方法
    def Lee(self):
        pass
    
    def Marlon(self):
        pass
 
class RelalizeInterfaceLee(interface):#必须实现interface中的所有函数,否则会编译错误
    def __init__(self):    
        print '这是接口interface的实现'
    def Lee(self):
        print '实现Lee功能'        
    def Marlon(self):
        pass   
 
 
class RelalizeInterfaceMarlon(interface): #必须实现interface中的所有函数,否则会编译错误
    def __init__(self):    
        print '这是接口interface的实现'
    def Lee(self):
        pass      
    def Marlon(self):
        print "实现Marlon功能"
Python 関連の技術記事の詳細については、

Python チュートリアル 列にアクセスして学習してください。

以上がPythonにはインターフェースがないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。