我是 python 的新手,所以我希望你能帮助我解决这个愚蠢的问题,因为我找不到任何导致这个问题发生的原因。所以,我有一个名为 calcoo.py 的文件,它有一个名为 Calculator 的类,用于求和和减法,然后我在另一个名为 CalculatorCHild 的类中继承该类(位于同一目录的另一个 py 文件中),它只是扩展了 Calculator 的行为添加除法和乘法。到目前为止,它可以工作,但是在求和时给了我重复的结果,就像它认为程序 calcco.py 的其余部分在类 Calculator 中一样。所以这是我的代码:
calcoo.py 文件:
#! /usr/bin/python
# -*- coding: utf-8 -*-
import sys
operator1= sys.argv[1]
operation= sys.argv[2]
operator2= sys.argv[3]
try:
operator1 = float(sys.argv[1])
operator2 = float(sys.argv[3])
except ValueError:
sys.exit("Error: Non numerical Parameters")
class Calculator():
def sumatory(self):
return float(operator1) + float(operator2)
def substract(self):
return float(operator1) - float(operator2)
if operation == "sum":
print Calculator().sumatory()
elif operation == "substract":
print Calculator().substract()
else:
print "Error, operation not supported."
calcoochild.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
import sys
operator1= sys.argv[1]
operation= sys.argv[2]
operator2= sys.argv[3]
try:
operator1 = float(sys.argv[1])
operator2 = float(sys.argv[3])
except ValueError:
sys.exit("Error: Non numerical Parameters")
from calcoo import Calculator
class CalculatorChild(Calculator):
def multiply(self):
return float(operator1) * float(operator2)
def divide(self):
if operator2 == 0:
print "Division by zero is not allowed."
else:
return float(operator1) / float(operator2)
if operation == "sum":
print CalculatorChild().sumatory()
elif operation == "substract":
print CalculatorChild().substract()
elif operation == "multiply":
print CalculatorChild().multiply()
elif operation == "divide":
print CalculatorChild().divide()
else:
print "Error, operation not supported."
当我执行 calcoo.py 一切正常,但是当我执行 python calcoochild.py 3 sum 2.1 例如它打印 5.1 两次,如果我写乘它打印:
Error, operation not supported
6.3
所以就像 CalculatorCHild 不仅继承了 sumatory 和 substract 方法,它还执行了它在类之外的 if 子句,我试图找到一个解决方案,但它一直给我相同的结果。我希望有人可以帮助我,提前谢谢你。