Python中的继承
2013-09-29 15:28
274 查看
转自:/article/3709484.html
派生类继承形式为:class DerivedClass(BaseClass):
[注意]
[1] Python不会自动调用基类的constructor,我们要亲自专门调用它。在方法调用之前加上类名前缀,然后把self变量及其他参数传递给它。
[2] Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中查找。
[3] 基类是在派生类定义的时候,在元组之中指明的。
[4] 如果在继承元组中列了一个以上的类,那么它就被称作多重继承。
#! /usr/bin/python
# Filename: inherit.py
# 2010-7-14 wcdj
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), # note, this comma
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('Mr. Young', 40, 30000)
s=Student('wcdj', 22, 75)
print # prints a blank line
members=[t, s]
for i in members:
i.tell() # works for both Teachers and Students
#########
# output
#########
>>>
(Initialized SchoolMember:Mr. Young)
(Initialized Teacher:Mr. Young)
(Initialized SchoolMember:wcdj)
(Initialized Student:wcdj)
Name:"Mr. Young" Age:"40" Salary:"30000"
Name:"wcdj" Age:"22" Marks:"75"
派生类继承形式为:class DerivedClass(BaseClass):
[注意]
[1] Python不会自动调用基类的constructor,我们要亲自专门调用它。在方法调用之前加上类名前缀,然后把self变量及其他参数传递给它。
[2] Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中查找。
[3] 基类是在派生类定义的时候,在元组之中指明的。
[4] 如果在继承元组中列了一个以上的类,那么它就被称作多重继承。
#! /usr/bin/python
# Filename: inherit.py
# 2010-7-14 wcdj
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), # note, this comma
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('Mr. Young', 40, 30000)
s=Student('wcdj', 22, 75)
print # prints a blank line
members=[t, s]
for i in members:
i.tell() # works for both Teachers and Students
#########
# output
#########
>>>
(Initialized SchoolMember:Mr. Young)
(Initialized Teacher:Mr. Young)
(Initialized SchoolMember:wcdj)
(Initialized Student:wcdj)
Name:"Mr. Young" Age:"40" Salary:"30000"
Name:"wcdj" Age:"22" Marks:"75"
相关文章推荐
- 我与python约个会:25. 企业级开发基础6:面向对象特征(继承)
- python中多重继承相关问题
- Python 类的定义、继承及使用对象
- Python的高级特性12:类的继承
- Python 类的继承
- python 多继承
- Python 5.3 多重继承
- Python 类继承,两种初始化(init)的区别
- Python进阶笔记(5)_ 继承
- python 类定义 继承
- python 面向对象——继承与多态
- Python面向对象——继承
- Python对象 继承 多态 获取对象信息 类的属性
- python类的继承
- Python - 对多继承以及super的一些了解
- python之面向对象之继承
- python 多重继承
- python 类 六:继承自动寻找父类
- python面向对象初学(类的继承)
- python学习(6)继承