タグ

2012年12月5日のブックマーク (2件)

  • 無名クラスを作る【Python】 - Programming Magic

    Pythonには辞書があるため、無名クラスや匿名クラスなどと言われるものが必要になることはあまりないが、引数に簡単なクラスのインスタンスを取る関数などを使う場合に無名クラスがほしいこともある。 Pythonでは以下のように、オブジェクトの型を調べるtypeを使って、無名クラスを作ることができる。 obj = type('',(),{})() 基的にtypeは型を調べるために使われるが、実は型を作ることもできる。型を作る場合には、第一引数に型名、第二引数に継承するクラス、第三引数にメンバを指定し、以下のようにクラスを作る。 Person = type('Person', (), { 'name': u'名無しさん', 'age': u'?', '__unicode__': lambda self: u'%s(%s)' % (self.name, self.age), }) これは以下のよう

  • Python: ファイル読み込み時の例外の扱い例 – try、except、else、finallyブロック

    ファイルのパスや名前のミス、パーミッションの権限が無い等が原因でファイルを読み込めない場合がある。そのような場合、すなわち例外が発生した際にそこで処理を中断して、発生した例外に合わせた処理ブロックにジャンプする構文が、try:~except Error:~構文。 今回は、コマンドライン引数で英文テキストファイル名を指定し、スクリプト内でファイル内容を読み込み、単語数をカウントし出力するスクリプトを以って、オプションのelse、finallyブロックを含めた例外ブロックの扱いを確認する。 ただし、ここでの「単語」とは、簡単に考える為、1つの空白文字で区切られた文字列とする。 ソースコード # -*- coding: UTF-8 -*- import sys script_name = sys.argv[0] try: arg = sys.argv[1] f = open(arg, 'r')

    Python: ファイル読み込み時の例外の扱い例 – try、except、else、finallyブロック