【发布时间】:2021-12-01 17:23:10
【问题描述】:
我尝试了这个继承代码并且得到了一个意外的输出。请指导我哪里错了。
Child.py
from ParentClass import Parent
class ChildImp(Parent):
var2 = 200
def __init__(self):
Parent.__init__(self, 8, 3)
def getData(self):
self.var1 + self.Sub() + self.Add()
obj = ChildImp()
print(obj.getData())
父类.py
class Parent:
var1 = 100
def __init__(self, a, b):
self.firstNUm = a
self.secondNUm = b
def Add(self):
return self.firstNUm + self.secondNUm
def Sub(self):
return self.firstNUm - self.secondNUm
obj1 = Parent(4, 6)
print(obj1.Add())
obj2 = Parent(9, 2)
print(obj2.Sub())
输出:
10
7
None
Process finished with exit code 0
这 10 和 7 是从哪里来的? 为什么输出中有一个 None ?
【问题讨论】:
-
因为
ParentClass.py没有将其代码包装在if __name__ == '__main__':语句中,所以该文件的代码将在导入时执行。 -
getData() 返回无。你有 print(obj.getData()) 所以它打印 None。
标签: python class inheritance