Python勉強会@福岡第4回に参加

2012年12月13日(火)に、Python勉強会@福岡第4回に参加してきました。
第2回、第3回と参加できなかったので楽しみにしていましたが、やっぱり楽しかったです!
この勉強会に参加してると仕事でがっつりPython使いたいな、とつくづく思いますが、自分のスキルではまだまだおこがましい話(なのと今の仕事は開発皆無なんですが)なので、gumiさん達と対等に技術談義できるくらいしっかり自分で修行しよう!と内心熱くなっています。


さて、勉強会の内容ですが、
「みんなのPython Webアプリ編」の輪読の続きです。
今回はp76〜p99まで行いました。


そろそろ音読する担当に立候補しないといけないですね。


突っ込み1 > RSSリーダー使ってますか?
TwitterFacebookのフォローでRSSリーダーまで追い付かないですよね〜という感じでまとまってましたが、わたし、RSSリーダーをまだまだチェックしてます。(かなりさらっと流し読みだったりタイトル見て既読チェックしちゃうのが大半ですが)
RSSリーダーは広告入れにくいんで(入れると使われなくなっちゃうんで)マネタイズしづらいのに負荷だけ高いから運用コスト高い、という話でした。


突っ込み2 > 複数の値をreturnするのはPythonでは普通なの?
最初に質問を勘違いして的を得ない返事をしちゃったんですが、ほぼPythonしかしらない私はこの突っ込みが出る理由にしばらく「?」だったんですが、確かに他の言語では関数やメソッドで複数の値を戻さないですね。


私も普通に複数の値を戻す関数書くので、疑問にも思ってなくて視野の狭さを再認識しました。> <


この複数の値を戻すあたりにLispの影響を感じる、というご意見もありました。私自身はLispはさっぱり分かりませんが、PythonLispの関係についての読み物はこのあたりが面白いかもしれません。
PythonLispの関係について > http://practical-scheme.net/trans/IsPythonLisp-j.html


突っ込み3 > __str__()は必要か?
クラスをprintする時のために書きますね、で解決したと思います。
私は主にDjangoのAdmin画面で表示する時用とKayのmodelの値をformに渡す時に使います。


突っ込み4 > _(アンダーバー1個)で始まる変数名って絶対使うもの?
ほとんど暗黙の了解なんで、使わなくてもいい、使ったとしても外部から呼び出すことはできます。確かPythonにはプライベート変数みたいなものはなかったと思います。(多分?)



突っ込み5 > Pythonの曜日って0が月曜日?
どうして言語ごとに(さらには言語内でも)曜日や月の値で0オリジンが変わっちゃうのか、という話ですが、本当に・・・言語ごとに覚えて気を付けるのは思考回路をさえぎる余計なバッドノウハウ以外何物でもないわけで・・・
言語ごとに0オリジンを調べると誰かの役に立つかも。


他にも突っ込みはあったと思いますが、こんな感じで、輪読しながら好きなタイミングで突っ込みを入れて話をしています。


今回は、勉強会の後にメモリの概念について@watsさんの講義が20-30分位ありました。
ほとんどメモリで何が起きてるか考えずに開発できてるんですが、すごく楽しい時間でした。


そこで使われたコードがこんな感じです。
興味のある方は1個目と2個目のコードの実行結果がどうなるか考えてみて、実際に実行してみてください。またその時、メモリで何が行われているのか考えると「あ〜、そうだよね〜」と納得できます。
▼1個目

def spam(a, b):
    a = 2
    b = "foo"
    print a
    print b

a = 1
b = "hoge"

spam(a, b)
print a
print b


▼2個目

def spam(a, b):
    a = 2
    b.append("foo")
    print a
    print b

a = 1
b = list("hoge")

spam(a, b)
print a
print b


今回も会場はgumiさんが提供して下さいました。
毎回会場のご提供と準備、本当にありがとうございます。



ちなみに次回開催予定の12月20日(火)をもって年内のPython勉強会は一旦終了です。
次回は125ページまでやって本編の忘年会へと突入します!


たまには本編に参加できたらなぁ、とぶつぶつつぶやく@uchikoshi22でした。