私はPythonクラスに新しく、継承の概念を理解しようとしています。私はMath
というクラスを持っていて、これはCalc
から継承しています。私は下になく、限りエラーを取得していたコードを実行すると親クラスのメソッドの呼び出しに関する問題
class Calc(object):
def mul(a, b):
return a * b
class Math(Calc):
def product(self, a, b):
return super(Math, self).mul(a, b)
if __name__ == "__main__":
m = Math()
print "Product:", m.product(1.3, 4.6)
は私が内だけmul()
のため2つの引数に合格している伝えることができます:Math.product()
から私は以下のように、基本クラスのメソッドmul()
を起動しようとしていますMath.product(a,b)
。誰かが私が作ったミスについての光を放つことができますか?
Product:
Traceback (most recent call last):
File "inheritance.py", line 14, in <module>
print "Product:", m.product(1.3, 4.6)
File "inheritance.py", line 9, in product
return super(Math, self).mul(a, b)
TypeError: mul() takes exactly 2 arguments (3 given)
これはクラスに入れる必要はなく、 'from operator import mul'だけで済みます。 – jonrsharpe