本文实例讲述了python类继承用法。分享给大家供大家参考。具体方法如下:
#!/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)
members = [t, s]
for member in members:
member.tell()# works for both teachers and students
运行输出结果如下:
(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总是首先查找对应类型的方法,在这个例子中就是如此。如果它不能在导出类中找到对应的方法,它才开始到基本类中逐个查找。基本类是在类定义的时候,在元组之中指明的。
一个术语的注释——如果在继承元组中列了一个以上的类,那么它就被称作多重继承。
希望本文所述对大家的python程序设计有所帮助。