リファレンス見ないで昨日のスクリプトをクラスで実装してみた。
"ナベアツ問題" class nabeatsuQuestion: def createReader(self): "ナベアツ問題を読み上げる人を作る" def reader(): "読み上げる人" def isFool(value): "3の倍数と3の付くときあほである" if value % 3 == 0: return True if str(value).find('3') >= 0: return True def isDog(value): "5の倍数で犬である" return value % 5 == 0 outputValue = '' if isFool(reader.value): outputValue += 'fool!' if isDog(reader.value): outputValue += 'bow-wow!' if outputValue == '': outputValue += str(reader.value) print outputValue reader.value += 1 return reader reader.value = 1 return reader instance = nabeatsuQuestion() runner = instance.createReader() for i in xrange(1,40,1): runner()
そうしたら、instance. createReader()のところで引数がどうのこうのって言われたので、小3分くらい悩んだ。
どうも、引数にselfを用意しておかないといけないようで。
"ナベアツ問題" class nabeatsuQuestion: def createReader(self): "ナベアツ問題を読み上げる人を作る" def reader(): "読み上げる人" def isFool(value): "3の倍数と3の付くときあほである" if value % 3 == 0: return True if str(value).find('3') >= 0: return True def isDog(value): "5の倍数で犬である" return value % 5 == 0 outputValue = '' if isFool(reader.value): outputValue += 'fool!' if isDog(reader.value): outputValue += 'bow-wow!' if outputValue == '': outputValue += str(reader.value) print outputValue reader.value += 1 return reader reader.value = 1 return reader instance = nabeatsuQuestion() runner = instance.createReader() for i in xrange(1,40,1): runner()
としたら動いた。
リファレンスはちゃんと読もうという教訓。
#はてな記法って便利