utf8を読み込む時
utf8のファイルを扱ったらはまったのでメモ。
上記を参考
import sys, codecs class test: def __init__(self, str): self.str = str def __str__(self): return self.str.encode('shift_jis') if __name__ == '__main__': path = sys.argv[1] for line in codecs.open(path, 'r', 'utf_8').readlines(): print test(line)
よく理由がわからないのだけれど、__str__関数内で、return self.strのままだと、str(self.str)を評価されることが原因なのではないか。