Day 91プロパティデコレータの使い方

2026-05-26 JST ・ 難易度: 中級 ・ カテゴリ: クラス

Pythonコード

1class Person:2    def __init__(self, name, age):3        self._name = name4        self._age = age5    @property6    def name(self):7        return self._name8    @name.setter9    def name(self, value):10        if not isinstance(value, str):11            raise TypeError('名前は文字列でなければなりません')12        self._name = value13    @property14    def age(self):15        return self._age16    @age.setter17    def age(self, value):18        if not isinstance(value, int) or value < 0:19            raise TypeError('年齢は0以上の整数でなければなりません')20        self._age = value21 22person = Person('山田', 30)23print(person.name)24print(person.age)25 26person.name = '田中'27person.age = 3128print(person.name)29print(person.age)

解説

次に試してみよう