@classmethodをざっくり調べてみたのですが
使いどころがいまいちわかりませんでした
(1)@classmethodをつけて、インスタンスのみで使う
(2)@classmethodをつけて、インスタンス以外でも使う(例 クラス名.メソッド())
(3)@classmethodをつけず、インスタンスのみで使う
(4)@classmethodをつけず、インスタンス以外でも使う(例 クラス名.メソッド(クラス名))

https://ideone.com/2qI4Am
(説明のためでコード内容に深い意味はありません)
(1)の場合、selfから__xや__yを参照すると属性エラーが出ました
それは、@classmethodを付加したメソッド内部の処理では
__init__で設定した初期値を扱えない、ということを意味しそうな気がするのですが
何のために?とモヤモヤしています
(h.sum(h.x, h.y)のようにインスタンスのときは明示的にゲッターを使えるため・・?)