LoginSignup
1
0

More than 3 years have passed since last update.

pythonのクラス設計についてまとめとく

Posted at

参考

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())
1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0