ブログに書くプログラミングネタもCocoaプログラミング関連だけでなく、Pythonネタも書けるようになってきました。そこで、Cocoaプログラミングと同じく、備忘録代わりにPythonの学習事項をブログに書いて身につけていこうと思います。
テキストに使っている書籍は、以前からブログに書いているこの本です。
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 11人 クリック: 395回
- この商品を含むブログ (117件) を見る
今回は【新たに確認したこと】という形でメモを書くのではなく、今まで使ってなかった「はてな記法」を利用して、ソースコードを書き、そのことについてコメントしていく形にしていきます。
それでは今回学習した部分のソースコードです。
class Worker: def __init__(self, name, pay): self.name = name self.pay = pay def lastName(self): return self.name.split()[-1] def giveRaise(self, percent): self.pay *= (1.0 + percent) bob = Worker('Bob Smith', 50000) sue = Worker('Sue Jones', 60000) print bob.lastName() print sue.lastName() sue.giveRaise(.10) print sue.pay
このソースコードは『初めてのPython 第3版』のp94に書いてあるものを少し整形したものです。現在、私は『初めてのPython 第3版』の第4章を終える範囲まで学習を迎えましたが、このclassの部分でちょっと手こずりましたね〜。と言っても、classの概念が分からないという訳で手こずった訳ではありません(一応Javaの経験が少しはありますので、classなどの概念とちょっとした使用ならできます。ポリモーフィズムを利用したOOPをそれほどは出来ませんが…)。単に『Pythonの文法でエラーをもらった』ということです。具体的に間違った点を以下に書きます。
- "class"とか"def"の行末にコロン(:)を付け忘れた。
- "def __init__(self, name, pay):"を"def__init__(self, name, pay):"と書いた。
- 上のどこが間違っているかって? やだな〜、"def"の後にスペースを付け忘れているじゃないですか!!
- インデントがずれていた(←ちゃんとやっていたはずなのになぁ…)
…本当に、コンピュータって融通が利かないんだなと感じた日です。でも、Python特有の文法の箇所を間違えたってことは、これから後間違えなくなる布石だと思って、今後の糧になるんだ!と思うようにします。
ところで、Pythonのインデントって「Tab」と「Space」、どちらを使うのが普通なんですかね? 誰か知っている方がいらっしゃったら教えていただけませんか?