私はPython 3.6でインターフェイスを実装しようとしています(Pythonには存在しません)。次の最小限の例を使用します。Pythonインターフェイスのメンバー変数が定義されています
import time
class ModuleInterface:
# How often the module information is updated (int in seconds).
interval = None
def update(self):
raise NotImplementedError
class HardDisk(ModuleInterface):
###############################################################################
pass # First
###############################################################################
# def update(self): # Second
# time.sleep(self.interval) # Second
###############################################################################
hd = HardDisk()
hd.update()
コードは、最初のケースでNotImplementedErrorを生成する必要があります。後者の場合、私は似たようなエラーを出したいと思いますが、これをPythonで正しく実装する方法はわかりません。インターフェースの考え方は、何かが定義されていないとエラーを出すことです。しかし、間隔が定義されているため、2番目のケースではTypeErrorが返されます。しかし、これは私が得たいと思う種類のエラーではありません。 ModuleInterfaceのすべてのメンバーが継承するクラスによって定義されなければならないことを宣言することは完璧です。
なぜあなたは 'python'でABCモジュールを試してみませんか? – nanithehaddock
ありがとう、それは正しいモジュールのようです。 – msg