父类的修改和返回变量 - Python

时间:2015-08-08 13:27:56

标签: python

我知道这可能是一个简单的解决方案。但是,它让我很难过。 我只需要访问父类的方法,设置一个变量然后从子类返回它。

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

1 个答案:

答案 0 :(得分:4)

实例变量附加到对象;如果通过父类或子类设置它们并不重要。您根本不需要定义Child.setAgeChild.getAge

class Child(Parent):
    pass

c = Child()
c.setAge(5)
print c.getAge()

另外,不要用None测试是否平等;使用

if self.age is None: