最近、PyQをやってて、思ったことがある。
それは、
- ドキュメントを読んだり、本を読んだりしていても、いまいちプログラムの動きが頭に入ってきてなかったってこと。
- とりあえず写経して動かして見てから、ドキュメントを読むとプログラムの動きが頭に入るってこと。
- ぼーっとあんまり頭を使わずにコードを写経しているだけでも、けっこう力になっている気がするということ。
みたいな話。
ドキュメントを読んで、理解するのもいいんですが、ドキュメントだけ読んでいるとけっこう話が空中戦になっていて、何が起きているのかが想像の中でどんどん膨みます。で、何があってるのかわからなくなりがちです。
でも、一回プログラムをコピーしてみて、動かしてみると、何が起きているかわかったりして、気持ちがいい。
だからチュートリアルとか、既存コードを写経するだけでも実は、理解が進むのかもしれないなーと思ったりしました。
関連して、「もしかして、Djangoのコードを写経してみれば、Djangoについてめちゃくちゃ詳しくなるのでは?」とか思いました。
いや、全部写経するの大変だし、やらなくてもいい気がするんですが、ちょっとでも写経して見たら、何が起きてるのか理解が進むのかなー。って。
というわけで、今日気になったモジュールをとりあえず写経して見た。
それは、 django.db.models.manager
django.db.models.manager | Django documentation | Django
写経して見た感想。
わからないところが多いなと思いました。django.db.modles.managerがわからないというより、Pythonの書き方としてわからない部分があって、一つや二つならコードを読みながら調べたらいいんですが、たくさんあるので、読みながら調べるのは辛そうだなー。って。
これまで、Djangoのソースを見て、いまいちよくわからないなあと思う箇所があったので、それはPythonの書き方でよくわかってない箇所がたくさんあったからだろうなあと改めて思いました。
とりあえず、思った疑問を書いて起きます。
近いうちに調べたい。
__new__
ってなんだっけ。django.db.router
ってなんだろうdjango.db.models.query.QuertSet
ってなんだろう_meta
ってなんだろうdeconstruct
ってなんだろうgetattr
/setattr
/hasattr
が知ってるようで知らないinspect.getmembers
のpredicate ってなんだろう__eq__
ってなんだろう__hash__
ってなんだろう- なんで空の
Manager
があるんだろう EmptyManager
って何に使うんだろう