代码:
class aa:
def getDis():
return 0
class bb(aa):
def getDis():
return 10
class cc(aa):
def getDis():
return 15
class d:
def __init__(self,cust):
self.cust = cust
self.memberLevel = aa()
def cgl(self,amt):
if amt ==1:
self.memberLevel = bb()
elif amt ==2:
self.memberLevel = cc()
else:
self.memberLevel = aa()
我有四节课。我要做的是,在我的前三个类中,我有继承权。在我的类d中,如果数量是1或2,我尝试调用相应的方法。相反,它给了我这个输出:
d1 = d('one')
d1.cgl(1)
print(d1.memberLevel)
输出:
<__main__.bb object at 0x036D7BF0>
所以需要帮助我如何使用重写技术
似乎您希望看到控制台输出:
10
因为d1.memberLevel是bb类本身(不是值10,也不是返回值10的函数),所以控制台输出显示
<__main__.bb object at 0x036D7BF0>
。当print
直接调用对象时,这是正确的行为也许您的最后一行控制台代码应该是:
另一种选择是在“d”类中赋值:
成员方法需要“self”,例如:
相关问题 更多 >
编程相关推荐