体調重視
寒暖の差と
コロナ騒ぎで
なんか体調がイマイチです。
休むと
医者の診断書が必要になるし、
授業についていけなくなるので、
なんとか騙し騙しいきます。
授業は「メソッド」「クラス」「オブジェクト指向」と
だんだん深淵部に入ってきた感じがあります。
ここまでくると、Javaとの違いとかも結構出てきました。
理解している範囲で少しずつ
その違いについて書いていきたいと思います。
pythonは自由だ!
今回は関数・メソッド編。
pythonの関数・メソッドはかなり自由です。
そもそも、Javaにおいては、関数もメソッドも
クラス内で定義されるという点で大差ない認識です。
pythonにおいては、関数とメソッドの違いはクラスに属するか属しないかによります。
クラスに属しないのが、関数。
クラスに属するのが、メソッドです。
関数には、無名関数「lambda」というものがあり、
これはC言語で見たことがある気がします(うろ覚え)。
メソッドは、振る舞いやスコープなどJavaと同じ感じ。
JavaScript の function と考えると、まぁ、違和感はありません。
で、
その関数・メソッドですが、
引数、戻り値が自由です。
まずは、引数。
pythonは型推論なので、当然のように引数に型を指定しません。
自由です。
「*」をつけることで、任意の数を引数にできます。
自由です。
「変数名 = 初期値」
を引数に定義しておくと、呼び出す側はそこに値を設定しなくてもよいです。
自由です。
続いて、戻り値。
Javaだけでなく、ほとんどの言語は
戻り値を1つだけしか設定できません。
pythonは、戻り値を複数設定し、タプルとしてまとめて返すことができます。
自由です。
まぁ、Javaも、戻り値を List とかのコレクションにしてしまえば、
まとめて返せるので、それは大きなインパクトではない気がします。
にしても、
python 自由だなぁ。
読むのが大変そう。。。
次回予告
引き続き、Javaとの比較で気になったところを書いていきたいと思います。
授業はざんざん進みます。
情報量が多すぎて、そろそろ
「とりあえず、わかったことにしておこう」
となりそうです。
でも、新しいことって楽しいなぁ。