有关python类继承:
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。
注意:继承语法 class 派生类名(基类名)://... 基类名写作括号里,基本类是在类定义时,在元组之中指明的。这与c#是有区别的。
何时使用继承:假如需要定义几个类,而类与类之间有一些公共的属性和方法,这时可以把相同的属性和方法作为基类的成员,而特殊的方法及属性则在本类中定义,这样只需要继承基类这个动作,就可以访问到基类的属性和方法了,它提高了代码的可扩展性。
例子,学习下python类继承的实现方法。
#! /usr/bin/python # Filename: inherit.py # Author: yanggang # www.jb200.com class SchoolMember: def __init__(self,name,age): self.name = name self.age = age print 'init SchoolMember: ', self.name def tell(self): print 'name:%s; age:%s' % (self.name, self.age) class Teacher(SchoolMember): def __init__(self,name,age,salary): SchoolMember.__init__(self,name,age) self.salary = salary print 'init Teacher: ', self.name def tell(self): SchoolMember.tell(self) print 'salary: ', self.salary class Student(SchoolMember): def __init__(self,name,age,marks): SchoolMember.__init__(self,name,age) self.marks = marks print 'init Student: ', self.name def tell(self): SchoolMember.tell(self) print 'marks: ', self.marks t = Teacher('yanggang', 20, 1000) s = Student('liming', 12, 86) members = [t,s] print for member in members: member.tell()
输出结果:
[root@jbxue python]$ python inherit.py init SchoolMember: yanggang init Teacher: yanggang init SchoolMember: liming init Student: liming name:yanggang; age:20 salary: 1000 name:liming; age:12 marks: 86