クラスのメンバー変数をわざわざpublicじゃなくprivateにしてgetter、setter関数を定義して呼び出す意味がなんでかわかりません。
python
1class MyClass: 2 def __init__(self): 3 self._x = 12345 4 @property 5 def x(self): 6 return self._x 7 @x.setter 8 def x(self,x): 9 self._x = x 10instance = MyClass() 11print(instance.x) 12
これはクラスの変数をプライベートにしてgetter、setter変数を介して変数にアクセスできるようにしています。
python
1class MyClass: 2 def __init__(self): 3 self.x = 12345 4instance = MyClass() 5print(instance.x)
しかし、わざわざわかりにくく書かなくても最初からprivateなんてせずにこう書けばいいんじゃないかと思ってしまいます。
以前、PHPの勉強をしている時このような書き方を見た時はあまり意義がわからず、放置していたのですが、pythonでも出て来て、なぜこのような煩わしい書き方をするのかはっきりさせておきたいと思いました。
わかる方、教えてください。よろしくお願いします。
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。