【发布时间】:2017-11-10 15:14:53
【问题描述】:
我有以下代码:
class Parent():
def __init__(self,name):
self.name = name
def printing(self):
print(self.name)
class Child (Parent):
def __init__(self,name,country):
Parent.name = 'Roger'
self.name = name
self.country = country
def Output(self):
print(Parent.name,self.name,self.country)
obj = Child('Rafael','France')
现在,obj.Output() 返回:Roger Rafael France
obj.printname() 返回:Rafael
谁能解释为什么分配Parent.name = 'Roger' 没有在父类中改变它?想了解为什么 `Parent.name' 没有被覆盖。
【问题讨论】:
-
我认为您将类属性与对象属性混合在一起
-
对,无论如何在这种情况下,让
Child继承自Parent没有多大意义,因为您将覆盖Parent属性,而obj.name只能引用单个值
标签: python class inheritance