我知道这可能是一个简单的解决方案。但是,它让我很难过。 我只需要访问父类的方法,设置一个变量然后从子类返回它。
class Person(object):
some code ...
def setAge(self, age):
#assumes age is an int greater than 0
#sets self's age to age (in years)
self.age = age
def getAge(self):
#assumes that self's age has been set
#returns self's current age in years
if self.age == None:
raise ValueError
return self.age
class Child(Person):
code ...
def setAge(self, age):
Person(self.name).setAge(age)
def getAge(self):
return Person(self.name).age
我甚至在setAge方法的父类中抛出了一些print语句,并给出了正确的值。但是,当我试着把它称为孩子时。它给了我一个None导致引发ValueError
答案 0 :(得分:4)
实例变量附加到对象;如果通过父类或子类设置它们并不重要。您根本不需要定义Child.setAge
或Child.getAge
。
class Child(Parent):
pass
c = Child()
c.setAge(5)
print c.getAge()
另外,不要用None
测试是否平等;使用
if self.age is None: