言語以前にgetter,setterの概念は不要
値の参照と変更時に、何らかのログ集計が
どこかでされれば良い
追加処理を書けるよう機能を入れたとしてもそれを推奨すべきじゃないし

セッターやゲッターに処理書いて
double.x = 4 # => 8


とか本当にこれが便利だと思ってる?
= の記号の意味を書き換えるオーバーライドだ
そもそも = 使った時点で副作用作ってるのにさらにバグを混入しやすくしてる

またセッターには書かずゲッターに書いた場合
double.x = 4 # => 4
double.x # => 8

↑ wwwwwwwww

こんな事をアルゴリズムに普通に混ぜていくと
ソースコード中のすべての = 記号に疑心を以て立ち向かわないといけなくなるね