mport types
class Person(object): #基类必须继承于object,否则在派生类中将无法使用super()函数
def __init__(self, name = '', age = 20, sex = 'man'):
self.setName(name)
self.setAge(age)
self.setSex(sex)
def setName(self, name):
if not isinstance(name,str):
print('name must be string.')
return self.name == name
def setAge(self, age):
if not isinstance(age,int):
print('age must be integer.')
return self.age == age
def setSex(self, sex):
if sex != 'man' and sex != 'woman':
print('sex must be "man" or "woman"')
return self.sex == sex
def show(self):
print self.name
print self.age
print self.sex
class Student(Person):
def __init__(self, name='', age = 30, sex = 'man', major = 'Computer'):
super(Student, self).__init__(name, age, sex) #调用基类构造方法初始化基类的私有数据成员
self.setMajor(major)#初始化派生类的数据成员
def setMajor(self, major):
if not isinstance(major, str):
print('major must be a string.')
return self.major == major
def show(self):
super(Student, self).show()
print self.major
if __name__ =='__main__':Person,Student
求大神看看 谢谢