A案(変数を変更できる)
python
1class Player: 2 def __init__(self, pos=0): 3 self._pos = pos 4 5 def up(self, volume): 6 self._pos += volume
B案(変数を変更できず、新しいオブジェクトとして返却)
python
1class Player: 2 def __init__(self, pos=0): 3 self._pos = pos 4 5 def up(self, volume): 6 new_pos = self._pos + volume 7 return Player(new_pos)
疑問
A案とB案どちらがオブジェクト指向らしいのか。どちらがPythonらしいのか。
自分の意見
今、私はB案のほうがバグが起こりにくく、安全であるように感じています。
@dataclass(frozen=True)
と書き加えようものなら、非常に安全だと思います。
一方で、冗長であるようにも感じています。また、どことなくPythonらしくない気もしています。
また、個人的には、B案の設計をあまり見ないように思います。
やはり、A案のほうがPythonのコードらしいのでしょうか?
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。