讲解对象:Python继承
作者:融水公子 rsgz
特点:
1 当一个类继承另一个类时,它将继承父类的所有功能(如变量和方法)
优点:
1 有助于重用代码
实现想法:
1 一个Person父类
2 下面有两个子类 Student Teacher
Person父类
#!/usr/bin/env python3
class Person(object):
"""返回具有给定名称的 Person 对象"""
def __init__(self, name):
self.name = name
def get_details(self):
"""返回包含人名的字符串"""
return self.name
Student类
class Student(Person):
"""返回 Student 对象,采用 name, branch, year 3 个参数"""
def __init__(self, name, branch, year):
Person.__init__(self, name)
self.branch = branch
self.year = year
def get_details(self):
"""返回包含学生具体信息的字符串"""
return "{} studies {} and is in {} year.".format(self.name, self.branch, self.year)
Teacher类
class Teacher(Person):
"""返回 Teacher 对象,采用字符串列表作为参数"""
def __init__(self, name, papers):
Person.__init__(self, name)
self.papers = papers
def get_details(self):
return "{} teaches {}".format(self.name, ','.join(self.papers))
调用:
person1 = Person('Sachin')
student1 = Student('Kushal', 'CSE', 2005)
teacher1 = Teacher('Prashad', ['C', 'C++'])
print(person1.get_details())
print(student1.get_details())
print(teacher1.get_details())
发现:
1 Student 类和 Teacher 类中调用 Person 类的 __init__ 方法
2 在 Student 类和 Teacher 类中重写了 Person 类的 get_details() 方法
3 调用 student1 和 teacher1 的 get_details() 方法时,使用的是各自类中定义的方法