fat runnerのいろいろな記録と挑戦

体重100kg超のオッサンですが、フルマラソン完走を目指すことになりました。応援よろしくお願いします。

そもそもの発端5

さて、そういうわけで7月から走り始めた。ペースは、いわゆるスロージョギングのペース、歩くのと同程度か、それより少し早い程度のスピード、つまり、時速6~8km程度。 
この程度のスピードならば、僕のようなデブでも、心肺機能に大きな負担をかけずに走り続けることができる。

ただ、やっぱり足の筋肉は非常に疲れる。当たり前か。。

このペースで 自宅周辺、あー、つまり、北は上野公園近辺、南は丸の内界隈、西は隅田川川べり、東は東京ドーム周辺あたりのどこかをノタリノタリと走りまわってたわけだ。

筋肉が痛くなって、さすがに毎日は出来なかったけれど、でも、まあ、少なくとも2日に一回くらい、一回あたり30分から1時間くらい(ということは、距離にして3~10キロメートルくらい)走っていました。

気がついたのは、毎日筋肉の痛いところが違うのだ。初日は太ももが、翌日は背中が、更に翌日はすねの後ろが痛かった。どうしてだろう?

たぶん、前日に疲労したところを無意識のうちにカバーしていて、それで、毎回、前回と違う所が痛むんだと思うんだけれど。

そうこうしているうちに、だんだん、8月頃にはかなり走れるようになってきた。筋肉ってのは、従順な使役動物のようなものなんだと思う。毎日、何かを命令され続けると、いつかはできるようになる。そういう比喩が頭に浮かんだ。たぶん、僕が、田舎の出身だからなんだと思う。この、人間の筋肉は羊か牛のようなものだと思う連想は、そう大きく間違ってはいないと思う。

エキスパートPythonプログラミング


いま、エキスパートpythonプログラミングという本を読んでいます。 初心者向きではないですが、いい本です。 Pythonってのは、lispに近いんだな、というのを、感じさせてくれます。

pythonのstaticmethodとclassmethod

次の仕事で、google app engineでpythonのプログラムを書くので、pythonを勉強中。
というわけで、GAEのライブラリを見ていたんだけれど、クラスメソッドの挙動に疑問が出て、調査。

pythonのclassmethodって、Javaとかのstaticメソッドと同じようなものじゃないの?
Python のクラスメソッド – デコレータ @classmethod, @staticmethod を使って

調べてみると、ちょっと違うみたい。Javaとかのstaticメソッドに似た使い方のできるメソッドは、staticmethodというのがあって、classmethodというのは、それとは違う、らしい。
どうちがうのか、よくわからない。

更に検索してみる。
[Python]staticmethodはmethodではなかった

staticmethodとclassmethodの違いでC++的な静的メソッドを考える

以下、理解したことをまとめてみる。
間違っていたら、ご指摘ください。
まず、議論の前提
pythonの関数的なもの、Callableなものには、メソッドと関数の二種類がある。この違いは、メソッドは、なんらかのオブジェクトと結び付けられた関数であり、そのオブジェクトが存在しないと呼び出せないのに対して、関数の場合、 そういった、呼び出すときに、そういった「結び付けられたオブジェクト」を必要としないということ。
で、「結び付けられたオブジェクト」 が存在しない場合(たとえば、結び付けられたオブジェクトが、通常のインスタンスであれば、そのインスタンスがまだ生成されていない)、そのメソッドは、unboundと呼ばれる(つまり、unboundなメソッドは呼び出せない)。そうでない、結び付けられたオブジェクトが既に存在している場合はメソッドは、boundと呼ばれる。

つぎに、本題。
クラスメソッド(classmethod)は、その「結び付けられたオブジェクト」 がインスタンスでなくて、クラスであるようなメソッドである。クラスは、インスタンスと違ってクラス定義が読み込まれた瞬間から存在しているから、クラスメソッドは、常にboundである。
それに対して、静的メソッド(staticmethod)は、関数である。つまり、クラスに対する参照を持たない、ただ単に、クラスの名前空間の中に存在しているだけである。

つまり、staticmethodってのは、Javaのstaticとかに近くて、classmethodは、Rubyのクラスメソッドとかに近いということか?

たぶん、違いは、継承したときとかに出てくるんだろうけれども、正直、どっちか片方だけでも十分だったような気がする。クラスメソッドでは面倒だけれど、静的メソッドだと簡単に書けるとか(あるいは、その逆)いうようなプログラムってあるんだろうか? 
記事検索
タグクラウド
アクセスカウンター
  • 累計:

人気ブログランキングへ
  • ライブドアブログ