このテストファイルのAddを実行するためにいろいろと試行錯誤していたのですがどうしていいかわかりません。
exp_test.py
python
1 2import unittest 3from exp import Expression, Number, Add, Sub, Mul, Div 4 5class TestExp(unittest.TestCase): 6 def test_number(self): 7 self.assertEqual(Number(42).eval(), 42) 8 9 def test_number_is_expression(self): 10 self.assertIsInstance(Number(0), Expression) 11 12 def test_add_is_expression(self): 13 self.assertIsInstance(Add(Number(1), Number(2)), Expression) 14 15 def test_add(self): 16 self.assertEqual(Add(Number(2), Number(3)).eval(), 5) 17 18 19 20
exp.py
python
1class Expression: 2 '''基底クラス: 変更不可''' 3 def eval(self): 4 '''Expression のサブクラスは必ずこのメソッドを実装すること''' 5 raise NotImplementedError 6 7 8class Number(Expression): 9 '''定数を表すクラス''' 10 def __init__(self, number): 11 self.number = number 12 13 def eval(self): 14 return self.number 15 16 17class Add(Expression): 18 '''二つの式の和に対応する式を表すクラス'''
自分なりにやってみてエラーだったもの↓(Addクラス内部)
python
1class Add(Expression): 2 '''二つの式の和に対応する式を表すクラス''' 3 def add(self,a,b,x): 4 self.a=a 5 self.b=b 6 self.x=self.a+self.b 7 def eval(self): 8 return self.x 9
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。