���� Python �̳�
��11�� �������ı��
��һҳ �̳� ��һҳ

�̳�

�������ı�̴�������Ҫ�ô�֮һ�Ǵ����������ʵ���������õķ���֮һ��ͨ�� �̳� ���ơ��̳���ȫ�����������֮��� ���ͺ������� ��ϵ��

��������Ҫдһ����������¼ѧУ֮�еĽ�ʦ��ѧ�������������һЩ��ͬ���ԣ���������������͵�ַ������Ҳ��ר�е����ԣ������ʦ��нˮ���γ̺ͼ��ڣ�ѧ���ijɼ���ѧ�ѡ�

�����Ϊ��ʦ��ѧ���������������������������ǣ������������Ļ������Ҫ����һ���µĹ������ԣ�����ζ��Ҫ�����������������ж�����������ԡ���ܿ�ͻ��Եò�ʵ�á�

һ���ȽϺõķ����Ǵ���һ����ͬ�����ΪSchoolMemberȻ���ý�ʦ��ѧ������ �̳� �����ͬ���ࡣ�����Ƕ���������ͣ��ࣩ�������ͣ�Ȼ��������Ϊ��Щ����������ר�е����ԡ�

ʹ�����ַ����кܶ��ŵ㡣�����������/�ı���SchoolMember�е��κι��ܣ������Զ��ط�ӳ��������֮�С����磬��ҪΪ��ʦ��ѧ��������һ���µ�����֤����ô��ֻ��򵥵ذ����ӵ�SchoolMember���С�Ȼ������һ��������֮�����ĸĶ�����Ӱ�쵽��������͡�����һ���ŵ�������԰ѽ�ʦ��ѧ��������ΪSchoolMember������ʹ�ã�����ijЩ�����ر����ã�����ͳ��ѧУ��Ա��������һ�����������κ���Ҫ�����͵ij��Ͽ��Ա��滻�ɸ����ͣ���������Ա������Ǹ����ʵ�����������󱻳�Ϊ��̬������

���⣬���ǻᷢ���� ���� ����Ĵ����ʱ�����������ڲ�ͬ�������ظ��������������ʹ�ö�������Ļ������ǾͲ��ò���ô���ˡ�

�������ij����У�SchoolMember�౻��Ϊ ������ �� ���� ����Teacher��Student�౻��Ϊ ������ �� ���� ��

���ڣ����ǽ�ѧϰһ�����ӳ���

ʹ�ü̳�

��11.5 ʹ�ü̳�

#!/usr/bin/python
# Filename: inherit.py


class SchoolMember:
    '''Represents any school member.'''
    def __init__(self, name, age):
        self.name = name
        self.age = age

        print '(Initialized SchoolMember: %s)' % self.name

    def tell(self):
        '''Tell my details.'''
        print 'Name:"%s" Age:"%s"' % (self.name, self.age),

class Teacher(SchoolMember):
    '''Represents a teacher.'''
    def __init__(self, name, age, salary):
        SchoolMember.__init__(self, name, age)
        self.salary = salary

        print '(Initialized Teacher: %s)' % self.name

    def tell(self):
        SchoolMember.tell(self)

        print 'Salary: "%d"' % self.salary

class Student(SchoolMember):
    '''Represents a student.'''
    def __init__(self, name, age, marks):
        SchoolMember.__init__(self, name, age)
        self.marks = marks

        print '(Initialized Student: %s)' % self.name

    def tell(self):
        SchoolMember.tell(self)

        print 'Marks: "%d"' % self.marks

t = Teacher(
'Mrs. Shrividya', 40, 30000)
s = Student(
'Swaroop', 22, 75)

print # prints a blank line

members = [t, s]
for member in members:
    member.tell()
# works for both Teachers and Students

��Դ�ļ���code/inherit.py��

���

$ python inherit.py
(Initialized SchoolMember: Mrs. Shrividya)
(Initialized Teacher: Mrs. Shrividya)
(Initialized SchoolMember: Swaroop)
(Initialized Student: Swaroop)

Name:"Mrs. Shrividya" Age:"40" Salary: "30000"
Name:"Swaroop" Age:"22" Marks: "75"

������

Ϊ��ʹ�ü̳У����ǰѻ������������Ϊһ��Ԫ����ڶ�����ʱ��������֮��Ȼ������ע�⵽�������__init__����ר��ʹ��self�������ã��������ǾͿ��Գ�ʼ������Ļ����ಿ�֡���һ��ʮ����Ҫ����Python�����Զ����û������constructor���������ר�ŵ�������

���ǻ��۲쵽�����ڷ�������֮ǰ����������ǰ׺��Ȼ���self�����������������ݸ�����

ע�⣬������ʹ��SchoolMember���tell������ʱ�����ǰ�Teacher��Student��ʵ��������ΪSchoolMember��ʵ����

���⣬����������У����ǵ����������͵�tell������������SchoolMember���tell�������������������⣬Python�������Ȳ��Ҷ�Ӧ���͵ķ���������������о�����ˡ�����������ڵ��������ҵ���Ӧ�ķ��������ſ�ʼ����������������ҡ������������ඨ���ʱ����Ԫ��֮��ָ���ġ�

һ�������ע�͡�������ڼ̳�Ԫ��������һ�����ϵ��࣬��ô���ͱ����� ���ؼ̳� ��


��һҳ ��һ�� ��һҳ
�������ı��� ��ҳ ����