Javaからキャリアを始めた僕にとってPythonは難しい

Pythonの考え方が難しい。

関数オブジェクトとかは分かった。
文法的な意味ではなく、使いドコロ。

なんとなくだけれども、ポリモーフィズムを割と簡単に書けそう。
引数の内容に応じて返す関数を変えればFactoryメソッドみたいな使い方ができそうだね。

インターフェースも要らないし、ダックタイピングも使えるから同じメソッドで挙動を変えるようなことも簡単にできそうだ。

ただ、クラスの使いドコロがわからない。
逆だ。クラスにしないで関数を使うところがわからない。

Javaから入った人って何でもかんでもクラスに押し込める。というかそうしないとならない文法だったから。
Javaにとってクラスは僕らを守ってくれた。
名前空間でも有ったし、意味的にも機能的にもひとつのまとまりだということを示す単にとして実にわかりやすかった。

Pythonも意味や機能としてのまとまりという使い方はわかる。
でもグローバルな領域にも関数宣言できるし、(そもそもグローバル領域っていう言い方で正しいのかもわからないし)
簡単な処理ならばクラスなんか使わないでできるわけだ。

Pythonはモジュールや関数単位で細かくインポートできるから、クラス外にある関数でもわかりにくくなることは少なそう。
だからクラスは状態を持っている構造体的な使い方しか僕は今のところしていない。
状態を持っているクラスで使われる機能としてならば使うけれども、なるべく関数型言語でよく言われる「副作用の無い」関数にしようと心がけているので、クラスが本当に構造体に近いものものという印象を受ける。

クラスを使うところ使わないところの違いというのがわかりにくく、とても難しい。
もしかしたらJavaの常識に囚われているだけなのかも知れない。

スポンサードリンク

関連コンテンツ