アジャイルプロセス協議会/アジャイル・ソフトウェアセル生産WG主催のオープンフォーラムが開催されます。ワーキンググループの設立より1年。産方式のエッセンスの解説や、事例の紹介。豪華メンバーによるパネルディスカッション等が行われます。┗【プログラミング】TurboGearsでPythonを始めてみよう![5]こんにちは、オブジェクト倶楽部の海の男、やっとむです。私事で恐縮ですが、富士Qの「ええじゃないか」に乗ってきました!げろんげろんに振り回され、気分は暴風で沈没して遭難。組みについて解説したいと思います。■□Pythonにはオブジェクト指向プログラミングの機能があります。クラスやメソッド、継承やポリモーフィズムなどもあります。いえPythonは「ピュアな」オブジェクト指向言語ではありません。関数型言語の機能も持っているし、構造化プログラミングも得意です。そのためPythonのオブジェクト指向プログラミングでは、言語実装の裏の動きがちらほらと見え隠れすることがあります。今回は、そうした裏の動きにも触れながらPythonのオブジェクト指向プログラミングを見ていきましょう。インタープリタから下記のように入力すると、Eggクラスを定義できます。...「(object)」は、継承元となるスーパークラスを指定しています。objectはすべての基底となるクラスです(省略もできますが、省略すると意味が変わってしまいます。付けるようにしてください)。[*1]クラスのインスタンスを作成するには、以下のようにクラス名に「()」を付けて呼び出します。Egg()Eggクラスにはfall()メソッドとhello()メソッドが定義してあります。メソッドを呼び出すには「.」で区切ってインスタンスとつなげます。fallfall()メソッドには「self」というパラメータがあります。これはインスタンス自身を示すパラメータで、Javaの「this」やRubyの「self」と同じものです。Pythonでは、かならずメソッドの第1引数にselfを明示的に書く必要があります。呼び出すときには、インスタンスの参照が自動的にselfに渡るので、引数として渡すことはありません。このルールは、メソッド(インスタンスに結びつく)と関数(独立して存在する)とが、内部的には同等であることに起因しています。Egg.fall(e)と同じように働くのです。Egg.fall()はインスタンスと結びついていないメソッドです。Egg.fall(e)と呼び出すと、selfパラメータにeの参照が渡り、同じように動作します。■□インスタンスのデータ属性(メンバ変数、フィールドと同じもの)は、宣言なしで自由に設定できます。普通の変数を宣言なしで使えるのと同じ感覚です。データ属性には可視性はありません。どこからでも自由に参照・変更ができます。(だからと言って無闇にデータ変数を操作していいというわけではありません。魔になるばかりである」というものです。Pythonは良識あるプログラムを書くオトナが使うものだというわけです。)eに、nameというデータ属性を設定しましょう。Eggのhello()メソッドでは、self.nameを表示しようとしています。上で設定した値が表示されますね。penguin.ここでちょっと、Eggのインスタンスであるeを調べてみましょう。'name']この中にある、__dict__という変数には、インスタンスのデータ属性が辞書の形で入っています(辞書は連載第2回で紹介しました)。'Duncan'}なので、__dict__を使ってデータ属性を取り出したり、追加・変更したりもできてしまいます。先ほどdir()で見たように、クラスのメソッドとデータ属性は、同列に並んでいます。これを利用して、クラスを定義した後でメソッドを追加することができます。第1引数にEggのインスタンスを取る関数を定義します。...次に、これをEggクラスに追加してしまいます。fryこれだけで、Eggクラスのメソッドとしてfryが定義されました。インスタンスから呼び出すこともできます。Duncan.ちゃんとe.nameが表示できています。上のfry関数では、「egg」というパラメータを使っています。メソッドであればこれは「self」になるところです。実は、「self」というのは予約語でもなんでもなく、ただのコーディングスタイルです。代わりに「this」を使ってメソッドを書いても、プログラムは何の問題もなく動きます(他の人に読みにくいので、止めたほうがいいですけれど)。このようにクラスの定義を後から自由にいじれるために、Pythonはメタプログラミングやアスペクト指向プログラミングにも柔軟に対応できます。今回はPythonのオブジェクト指向プログラミングを、ちょっと裏を覗きながら紹介しました。突っ込んで調べると、さらに深い裏の世界が見えてきちゃったりするかもしれません。裏、でもないですが、ちょっとおまけのテクニックを。次のようにすると、クラスやメソッドのソースを見ることができます。上で見たように、EggクラスのメソッドがEggクラスの中に書いてあるという保証がないので、こうやって確認できるのは便利なこともあります。inspect.getsource(Egg.fry)ただしインタープリタから入力したコードは表示できません。ソースファイルから読み込んだものに使ってください。インタープリタに手で入れたソースコードをあらためて読む必要もないですよね。...」と書くこともできます。class)」と呼ばれるものになり、いくつかの便利な機能が追加されます。_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。「テイラーメイド」その2週末の東京は、とてもいい天気でした。どこかへお出かけになった方も多いようですね。化物が収穫される時期です。夏の間に食欲が無かった人は、ここで一気に太ることがあるそうですよ。前回のコラムでは「テイラーメイド」を取り上げ、関わりあう人にとってそれぞれ受け止め方の違いがあるということをお話しました。今回のコラムではその話をさらに発展させて、「受け止める側の主導権」についても触れてみたいと思います。いうことかというと、どんな言葉でもその会話を交わす二人の関係が大きく影響をしています。「前回のコラムからヒントを得て行動してみたけど、どんな言葉をかけてもうまく行かないな」と思っている人がいらっしゃれば、少しヒントになればうれしく思います。■私の受け止め方の場合ここで唐突ですが、実際に私がオブジェクト倶楽部のメンバーとのやり取りをどんな風に受け止めているのかをサンプルとして挙げてみたいと思います。どれだけ勝手に!?受け止めているのかを見てみましょう。オブジェクト倶楽部の事務局としてお仕事を始めて、既に半年が過ぎました。直接の会話やメールなどを通して、私はメンバーの皆さんのことをこんな風に感じています。主宰のひら○べ氏は、お忙しい中でもスピーディーにメールなどでレスポンスをくださいます。自分の感想を添えてくださることが多いように感じます。「僕の意見は〜」「僕は○○が好き。」このレスポンスの速さと、ご自分の意見も添えてくださることで、私にはリーダーとしての心強い印象を感じます。事務局長のあ○の氏は、とても丁寧です。「ありがとうございました。」簡単な会話の中でも丁寧な言葉を使われることで、とてもこちらを尊重していただいている気持ちになります。○だ氏は、とても直接的に言葉をかけてくださいます。「凄いね〜!」「面白いね〜。褒めてくれるときには笑顔が多いですし、こちらとしても素直に「嬉しいな」という気分になります。夏のイベントのときは、このコメントひとつでプリットひっつき虫[*1]を必死で練りまくりました[*2]。お隣の席の○っとむ氏は、とても信頼が出来ます。可能なことと不可能なことをきちんとわかり易く論理立てて説明してくださるので、ついついいろいろと相談してしまいます。○に氏は、とてもタイミング良くアドバイスをしていただいたり、ご意見をくださいます。このタイミングの良さも「きちんと見てくれているんだな!」と安心感を感じます。やり取りの多いま○わさんは、とても頻繁にいろいろな情報を教えてくださったり、声をかけてくださいます。私はポジティブにその頻度の高さを「色々と気を使ってくれてる」とありがたく受け止めています。ご紹介したいエピソードはありますが、きりが無いので今回はこのあたりで止めておきましょう。一緒に仕事をしている仲間なので信頼して書いていますが、彼らの本当の気持ちや感情というよりも、「受け止める側の私(上田)がそう思っている」ということが、受け止める印象の主導権を持っているということなのです。葉以外の表情や行動や服装などの印象による非言語メッセージが93%もあると言われています。それを受け取る側がある意味勝手に受け止めているのですから(ちょっと乱暴な言い方ですが)、ややこしいですよね。そこを補うのは、日ごろの人間関係に尽きると思います。どんなに激しいケンカをしていても息がぴったりの夫婦とか、口が悪くてもお客さんに愛される居酒屋のマスターなどは、きちんとした人間関係の上にある会話だからこそ成り立っているのですね。言葉だけではなく、お互いの人間関係作りって本当に大事です。http://www.kokuyo.co.jp/find/catalog/1_detail.php?c1=1118&c2=12&c3=00&sid=7914[*2]:プリットひっつき虫を上手に使う秘訣は、事前の「練り」にあるそうです。○だ氏はこの「練り加減」に強いこだわりを持っています。_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。ホントのところ今週は「携帯電話のポータビリティーを利用しますか?」のホントのところ。携帯電話の電話番号を変更せずに、携帯電話の契約会社を変えることが出来るようになるそうです。読者の皆さんは利用しようと思ってますか?ホントのところ。変えようと思っている。様子をみてから検討する。今の契約会社で満足しているので、変えないつもり。このニュースを初めて知った。