投稿

[Python 100日チャレンジ] Day 37 - カプセル化と情報隠蔽

Pythonでカプセル化を考え、直接変更されたくない値をpropertyで安全に扱う方法を学びます。

[Python 100日チャレンジ] Day 37 - カプセル化と情報隠蔽

カプセル化とは

カプセル化は、データと操作をクラスの中にまとめ、外からの使い方を整理する考え方です。

Pythonでは完全なprivateはありませんが、慣習として _name のようにアンダースコアを付けます。

1
2
3
class User:
    def __init__(self, name):
        self._name = name

property

値の取得や設定にルールを入れたい場合は property を使えます。

1
2
3
4
5
6
7
class User:
    def __init__(self, age):
        self._age = age

    @property
    def age(self):
        return self._age

今日のゴール

カプセル化は、クラスの内部状態を守りながら使いやすい入口を作る考え方です。直接触らせる値と隠す値を意識しましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。