参考
PythonのABCモジュールで抽象クラスを作る方法【初心者向け】
はじめに
最近phpの現場にいるんだけど、そこでやたらabstract
とかInterface
とかが出てくる。で、たしかにクラスが割れてるとgitで複数人で作業できるし、そのメリットを感じだしたので、pythonでも、といった感じ
まずはabstract
ちなみにabstract
は「概要」の意味だ。これがわかるだけで結構理解度が違うと思う。抽象クラスじゃなくて概要クラスのほうがわかりやすくない?
Animal.py
import abc
class Animal(object, metaclass=abc.ABCMeta):
"""動物を定義するための基底クラス"""
@abc.abstractmethod
def say_hello(self):
pass
main.py
from basic_abstract_class.Animal import Animal
class Dog(Animal):
"""犬を定義"""
def __init__(self, name):
self.name = name
def say_hello(self):
return "こんにちは!私の名前は" + self.name + "だワン!"
class Cat(Animal):
"""猫を定義"""
def __init__(self, name):
self.name = name
def say_hello(self):
return "こんにちは!私の名前は" + self.name + "だネコ!"
d = Dog("ポチ")
c = Cat("きゅうべぇ")
print(d.say_hello(), c.say_hello())