Python继承编程练习初级

  • 定义一个Person类拥有设置姓名、年龄、性别的成员方法;
  • 定义派生类Teacher继承Person类,并拥有自己的show()方法;
  • 定义派生类Student继承Person类,并拥有自己的show()方法;
class Person(object):
    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 not in ('man', 'woman'):
            print('sex must be "man" or "woman"')
        self.__sex = sex
        
    def show(self):
        print('Name:', self.__name)
        print('Age:', self.__age)
        print('Sex:', self.__sex)

class Teacher(Person):
    def __init__(self, name='', age = 30, sex = 'man', department = 'Computer'):
        super(Teacher, self).__init__(name, age, sex)
        #Person.__init__(self, name, age, sex)
        self.setDepartment(department)
        
    def setDepartment(self, department):        
        if not isinstance(department, str):
            print('department must be a string.')
            return 
        self.__department = department
        
    def show(self):
        super(Teacher, self).show()
        print('Department:', self.__department)
class Student(Person):
    def __init__(self, name='', age = 20, sex = 'man', department = 'Computer'):
        Person.__init__(self, name, age, sex)
        self.setDepartment(department)
    def setDepartment(self, department):        
        if not isinstance(department, str):
            print('department must be a string.')
            return 
        self.__department = department
    def show(self):
        Person.show(self)
        print('Department:', self.__department)


if __name__ =='__main__':
    print('='*30)
    zhangsan = Person('Zhang San', 19, 'man')
    zhangsan.show()

    print('='*30)
    lisi = Teacher('Li Si',32, 'man', 'Math')
    lisi.show()
    print('='*30)
    lisi.setAge(40)
    lisi.show()

    print('='*30)
    wangwu = Student('Wang Wu',21, 'man', 'Math')
    wangwu.show()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值