Progate 2日目

Progate 2日目。今日はPythonのⅢとⅣを終了することができました。

 

昨日の後半にスライドの説明はほとんど見なくても絵を見て、あとはExerciseを解くだけですらすらとできると気づきました。しかし今日の内容は難しく、説明を読まないとわからないところが多かったです。そのため、昨日と同じように2つのLessonしか終わらせることができませんでした。

 

クラスとはいったい何なのか?なぜこんなもの使うのか?なぜファイルを分けて書いた方がいいのか?こういったことに躓き、なかなか進むことができませんでした。

 

しかし色々と考えながらやることで以下のようなことがわかってきました。

 

  • append()の()は関数をあらわしていたんだな。はlistにしろdictionaryにしろkeyとかitemとかの要素を一つずつ取り出すか一つずつ並べられているときに使うんだ。ペアになったら{}を使う。
  • 関数の中にargumentを受け取るparameterがある場合にはそれをクオーテーションマークで囲ってはダメ
  • なぜ定義した関数と後で出てくる変数名が違うのだろう? →違う変数にしないと2つ定義が存在してしまうから。(上書きされてしまう?)
  • returnで返されるときに文字列を値として返すとき、print('string')ではなく、'string'だけにしないといけない。なぜならprint()は値valueではなく関数だから。
  • ~.~~とドット(.)を使うときは他のファイル、モジュール、Standard library、クラスから関数を引っ張ってくるとき、またはクラスに作ったinstanceの変数を定めるとき。関数では()が付くがinstanceではつかない。
  • クラス内に作った関数(メソッド)の最初のparameterはなぜselfにしなければならないのか?→selfは後から呼び出されたinstanceを代入することができるparameter。だからメソッド内でself.nameなどself.~と定義しておけば後からすべてのinstanceについて共通のvariableを作っていく必要がなくなる。
  • クラス内で定義したメソッドの中でprint()を使って、あとでinstance methodとして呼び出した方が書く量が少なくて楽だと思ったが、ただの文字列のvalueとして返した方が後でprint()の値としてだけでなく、他の関数に代入できる値として利用できると気が付いた。
  • __init__メソッドはすべてのinstanceに共通する項目をアウトプットするのにとても便利。
  • ファイルを分割するのはコードが長くなりすぎないのを防ぐため。(Progateでやっていると1つのファイルにすべてのコードが書いてある方が流れを確認しやすくて便利だが、実際のプログラミングではとても長くなることがある。)

 

昨日引っかかったところも進めるうちにわかってきたので難しかったが理解を深めることができた1日でした。

 

明日はPythonを終わらせてSQLに入る予定です。