我用Python重写了一个C#依赖倒置示例。我创建了一个名为CalculatorOperation
的接口,并试图通过Calculator
构造函数实现依赖项注入。问题是当我运行代码时,它返回None
。如果我将self.calc_op = CalculatorOperation()
更改为self.calc_op = Addition()
,它将返回正确的值15
class CalculatorOperation():
def calculate(self, num_1, num_2):
pass
class Calculator:
def __init__(self, calc_op):
self.calc_op = CalculatorOperation()
def solve(self, num_1, num_2):
return self.calc_op.calculate(num_1, num_2)
class Addition(CalculatorOperation):
def calculate(self, num_1, num_2):
return num_1 + num_2
class Subtraction(CalculatorOperation):
def calculate(self, num_1, num_2):
return num_1 - num_2
def main():
addition = Calculator(Addition())
print(addition.solve(10, 5))
if __name__ == '__main__':
main() # None
只需传入在main中创建的对象(不要从
__init__
方法中重新初始化),如下所示:相关问题 更多 >
编程相关推荐