AIっておもしろい?

離職者等再就職訓練でAIを勉強するブログです

体調重視

寒暖の差と

コロナ騒ぎで

なんか体調がイマイチです。

 

休むと

医者の診断書が必要になるし、

授業についていけなくなるので、

なんとか騙し騙しいきます。

 

授業は「メソッド」「クラス」「オブジェクト指向」と

だんだん深淵部に入ってきた感じがあります。

ここまでくると、Javaとの違いとかも結構出てきました。

 

理解している範囲で少しずつ

その違いについて書いていきたいと思います。

 

 

pythonは自由だ!

今回は関数・メソッド編。

pythonの関数・メソッドはかなり自由です。

 

そもそも、Javaにおいては、関数もメソッドも

クラス内で定義されるという点で大差ない認識です。

pythonにおいては、関数とメソッドの違いはクラスに属するか属しないかによります。

クラスに属しないのが、関数。

クラスに属するのが、メソッドです。

 

関数には、無名関数「lambda」というものがあり、

これはC言語で見たことがある気がします(うろ覚え)。

メソッドは、振る舞いやスコープなどJavaと同じ感じ。

JavaScript の function と考えると、まぁ、違和感はありません。

 

で、

その関数・メソッドですが、

引数、戻り値が自由です。

 

まずは、引数。

python型推論なので、当然のように引数に型を指定しません。

自由です。

「*」をつけることで、任意の数を引数にできます。

自由です。

「変数名 = 初期値」

を引数に定義しておくと、呼び出す側はそこに値を設定しなくてもよいです。

自由です。

 

続いて、戻り値。

Javaだけでなく、ほとんどの言語は

戻り値を1つだけしか設定できません。

pythonは、戻り値を複数設定し、タプルとしてまとめて返すことができます。

自由です。

まぁ、Javaも、戻り値を List とかのコレクションにしてしまえば、

まとめて返せるので、それは大きなインパクトではない気がします。

 

にしても、

python 自由だなぁ。

読むのが大変そう。。。

 

 

次回予告

引き続き、Javaとの比較で気になったところを書いていきたいと思います。

授業はざんざん進みます。

情報量が多すぎて、そろそろ

「とりあえず、わかったことにしておこう」

となりそうです。

でも、新しいことって楽しいなぁ。