Я новичок в классах Python и пытаюсь понять концепцию наследования. У меня есть класс под названием Math
, который наследуется от Calc
. От Math.product()
Я пытаюсь вызвать метод базового класса mul()
, как показано ниже:Проблема, вызывающая метод для родительского класса
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()
в 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)
Нет необходимости в том, чтобы быть в классах, вы могли бы просто «с помощью import mul» и сделать с ним! – jonrsharpe