Python初學之類的繼承和多態__Python

來源:互聯網
上載者:User

子類可以繼承父類的公有成員,但是不可繼承私人成員。

若在衍生類別中調用基類的方法,則super(teacher,self).__init__(name,age,sex),或者Person.__init__(self,name,age,sex).



 class Person(object):def __init__(self,name = '',age = 10,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'returnself.__name = namedef setAge(self,age):if not isinstance(age,int):print' age must be integer'returnself.__age = agedef setSex(self,sex):if sex !=  'man' and sex != 'woman':print 'sex must be man or women'        return        self.__sex = sexdef show(self):print 'name:',self.__nameprint 'age:',self.__ageprint 'sex:',self.__sex>>> class Teacher(Person):def __init__(self,name = '',age = 30,sex = 'man',job= 'tutor'):Person.__init__(self,name,age,sex)self.setJob(job)def setJob(self,job):if not isinstance(job,str):print 'job must be string'                return        self.__job = jobdef show(self):Person.show(self)print'job:',self.__job>>> xiaoming = Person('xiaoming',30,'man')>>> xiaoming.show()name: xiaomingage: 30sex: man>>> xiaohong = Teacher('xiaohong',40,'woman','math teacher')>>> xiaohong.show()name: xiaohongage: 40sex: womanjob: math teacher




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.