有关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