1. ホーム
  2. パイソン

[解決済み】Pythonの抽象的メソッド【重複あり

2022-04-16 01:50:50

質問

Pythonで継承の使い方に悩んでいます。Javaではこのコンセプトは簡単そうに見えますが、Pythonでは今まで理解することができず、少なくとも私には驚きでした。

私は以下のようなプロトタイプを持っています。

class Shape():
   def __init__(self, shape_name):
       self.shape = shape_name

class Rectangle(Shape):
   def __init__(self, name):
       self.shape = name

上記のコードで、すべてのサブクラスで実装する必要がある抽象的なメソッドを作成するにはどうすればよいでしょうか。

どのように解決するのですか?

ABCを使用して、以下のような内容です。

import abc

class Shape(object):
    __metaclass__ = abc.ABCMeta
    
    @abc.abstractmethod
    def method_to_implement(self, input):
        """Method documentation"""
        return
    

この良いチュートリアルもお読みください。 https://pymotw.com/3/abc/

こちらもご覧ください zope.interface は、pythonでABCが導入される前に使われていたものです。