【发布时间】:2019-05-07 03:04:27
【问题描述】:
我对此进行了相当多的搜索,但似乎找不到任何特定于我的问题的内容。
假设我有三个单独的 python 文件 fileA.py、fileB.py 和 fileMain.py
fileB.py 继承自 fileA.py。
文件A.py
class Parent():
def __init__(self):
self.valueA = 5
fileB.py
from fileA import Parent
class Child(Parent):
def __init__(self):
Parent.__init__():
self.valueB = 10
def Calculate(self):
self.result = self.valueB + self.valueA
print(self.result)
在 fileMain.py 中,我有一些代码在父类中的 valueA 更改后调用 Child 类中的 Calculate 方法。
from fileA import Parent
from fileB import Child
class MainProgram():
def __init__(self):
self.parent = Parent()
self.child = Child()
self.parent.valueA = 8
self.child.Calculate()
foobar=MainProgram()
我的问题是,打印输出是 15 而不是 18。为什么?我怎样才能解决这个问题以获得预期的结果?
我希望 fileB.py 从 fileA.py 继承的原因是我计划让 fileC.py 也从 fileA.py 继承,并在那里使用 self.valueA 完成其他计算。 valueA 应该由程序的用户设置。我在这里简化了一些事情。希望这有意义吗?
抱歉,如果我使用的术语有误。请纠正我。 :)
【问题讨论】:
-
提示:将
self.child = Child()移动到self.parent.valueA = 8下方。 -
@Mr.Zeus 这不会改变任何事情
-
哎呀,对不起,应该考虑清楚了。
-
为什么没有任何改变?
-
文件不继承自文件。这没有任何意义。
标签: python-3.x