【Ruby => Python】たい焼きクラスを作ってみる
こんばんは、葛の葉です。こんな動画があったんです。
前に紹介した本の著者だった!びっくり!
ちょっとそれらの動画やページをみつつ、RubyからPythonに移植できるか、やってみました。
[Step 1. 「あんこ」の種類を保持できるようにする]
''' Python https://www.youtube.com/watch?v=HsivL1JBRaw RubyのこれをPythonに移植してみよう! ''' import unittest class Taiyaki: def __init__(self, anko): self.anko = anko class TaiyakiTest(unittest.TestCase): def test_taiyaki(self): taiyaki_1 = Taiyaki('あんこ') self.assertEqual('あんこ', taiyaki_1.anko) taiyaki_2 = Taiyaki('白あん') self.assertEqual('白あん', taiyaki_2.anko) if __name__ == '__main__': unittest.main(exit=False)
Step 2. 「大きさ」を保持できるようにする
''' Python https://www.youtube.com/watch?v=HsivL1JBRaw RubyのこれをPythonに移植してみよう! ''' import unittest class Taiyaki: def __init__(self, anko, size): self.anko = anko self.size = size class TaiyakiTest(unittest.TestCase): def test_taiyaki(self): taiyaki_1 = Taiyaki('あんこ', 'ふつう') self.assertEqual('あんこ', taiyaki_1.anko) self.assertEqual('ふつう', taiyaki_1.size) taiyaki_2 = Taiyaki('白あん', '大きい') self.assertEqual('白あん', taiyaki_2.anko) self.assertEqual('大きい', taiyaki_2.size) if __name__ == '__main__': unittest.main(exit=False)
Step 3. [自分の状態を文字列として返せるようにする]
''' Python https://www.youtube.com/watch?v=HsivL1JBRaw RubyのこれをPythonに移植してみよう! ''' import unittest class Taiyaki: def __init__(self, anko, size): self.anko = anko self.size = size def to_s(self): return 'あんこ: {anko}, 大きさ: {size}'.format(anko=self.anko, size=self.size) class TaiyakiTest(unittest.TestCase): def test_taiyaki(self): taiyaki_1 = Taiyaki('あんこ', 'ふつう') self.assertEqual('あんこ', taiyaki_1.anko) self.assertEqual('ふつう', taiyaki_1.size) self.assertEqual('あんこ: あんこ, 大きさ: ふつう', taiyaki_1.to_s()) taiyaki_2 = Taiyaki('白あん', '大きい') self.assertEqual('白あん', taiyaki_2.anko) self.assertEqual('大きい', taiyaki_2.size) self.assertEqual('あんこ: 白あん, 大きさ: 大きい', taiyaki_2.to_s()) if __name__ == '__main__': unittest.main(exit=False)
残りは…
残りは君自身の目で確かめてみてくれ!
単体テストしながらコード書いたのは楽しかった。
インスタンスメソッドを追加することで機能を追加していくところが楽しかった。