読んで欲しい人
- python初学者でシーケンス(listやtupleなんか)、条件分岐ぐらいまで終わった人
- 超初級を脱出したい(自分も同様w)
- __iter__って何?iterableとiteratorって何が違うのって人?
取り扱う内容
pythonを初学習の言語にした場合、一般的に型の使い方(int/ str/ list/ set /tuple /dict etc)やif/forなどでの条件分岐から覚えていくかと思います。
ただ、実際qiitaの記事なんかを読んでいくと、iteratorやgenerator(yeild使うやつ)、よくわからない特殊メソッド(__init__, __iter__, __dict__なんかみたいなやつ)やデコレータ(@staticmethod, @classmethodなんか)によくぶつかります。
一個一個慣れていくことが超初級の脱出方法だと思っているので、使用頻度の大小を含めて少しずつ勉強していきます。
ちなみに書いてる私も特殊メソッド得意ではないですし、__変数でのprivate化とかぐらいまでがある程度慣れてきた初級者という前提でお付き合いください。
連載項目
- iteratorの理解を深める
- generatorの理解を深める
- decoratorの理解を深める
- 特殊メソッドに慣れる
- ポリモーフィズムに慣れる
目標は一旦終わった段階で以下のようなステータスになっていることです。
・pythonのチュートリアルが終わった感じのレベル ・iterater/generatorといった生成機っぽいやつにパッとみの辛さを感じない ・printしたらobj instanceが返ってくるという悲しい展開からの脱却 ・特殊メソッドやプライベート変数とうに少し慣れる(呼び出しの概念が少し理解できた感じ) ・ポリモーフィズムを自分で作れる感じ(ただし、非常に簡単なやつ)
まとめ
正直使わずにできることも多いgeneratorとかですが、知っておいて損はないです。ただ、実務ですぐ何かをしたいって人は、pandasとかnumpyとかrequests/bs4/seleniumとか使った方法に慣れた方が、データ分析・スクレイピング等で自分の目に見える結果が出しやすいかと思います。
自動化の勉強なら、それこそcron/launchedとかやった方が、自分の作業は楽になります。
でも、ちょっと回り道しながらもgeneratorや特殊メソッドとか把握していくと、python自体の習熟度は上がっていくのかなぁという気も個人的にしていて。。
あと、ノンプロ研メンバーでいつかpython/djangoでWebAppsを作るってやりたいので、その時にざっと超初級を脱出してもらうためのコンテンツも準備しておきたくw
まぁつらつら書きましたが、次回以降に簡単な事例を用いながら、少しずつ理解を深めていきましょう。ただ、先に宣言しますが、この連載が終わってもモヤモヤしたままなのは変わりませんのであしからず。
連載目次: python超初級脱出シリーズ
pythonの入門編を終えた後に、supper_beginnerクラスを脱出するためのシリーズです。unitテストやフレームワークの使い方に行く前に、少しpythonの知識を深めたい人用の記事です。