python进阶四(类的继承)【4-1 python中继承一个类】

python中继承一个类

如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承:

1 class Person(object):
2     def __init__(self, name, gender):
3         self.name = name
4         self.gender = gender

定义Student类时,只需要把额外的属性加上,例如score:

1 class Student(Person):
2     def __init__(self, name, gender, score):
3         super(Student, self).__init__(name, gender)#注意写法,super
4         self.score = score

一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。

函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。

任务

请参考 Student 类,编写一个 Teacher类,也继承自 Person。

 1 class Person(object):
 2     def __init__(self, name, gender):
 3         self.name = name
 4         self.gender = gender
 5
 6 class Teacher(Person):
 7
 8     def __init__(self, name, gender, course):
 9         super(Teacher,self).__init__(name,gender)#对于父类Person的初始化
10         self.course = course
11
12 t = Teacher(‘Alice‘, ‘Female‘, ‘English‘)
13 print t.name
14 print t.course

原文地址:https://www.cnblogs.com/ucasljq/p/11624791.html

时间: 2024-12-28 20:49:04

python进阶四(类的继承)【4-1 python中继承一个类】的相关文章

Python进阶(四十)-数据可视化の使用matplotlib进行绘图

Python进阶(四十)-数据可视化の使用matplotlib进行绘图 前言 ??matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包.我将在这篇文章中介绍matplotlib API的核心对象,并介绍如何使用这些对象来实现绘图.实际上,matplotlib的对象体系严谨而有趣,为使用者提供了巨大的发挥空间.用户在熟悉了核心对象之后,可以轻易的定制图像.matplotlib的对象体系也是计算机图形学的一个优秀范例.即使你不是Python程序员,你也可以从文中

Python进阶(四十九)-初识Flask Blueprint

Python进阶(四十九)-初识Flask Blueprint 前言   在进行Python Web开发时选择Flask框架.项目模块划分阶段,使用Blueprint(这里暂且称之为“蓝本”).Blueprint通过把实现不同功能的module分开,从而把一个大的application分割成各自实现不同功能的module.在一个Blueprint中可以调用另一个blueprint的view function, 但要加相应的blueprint名.   Blueprint还有其他好处,其本质上来说就

通过反射把一个类的属性的值赋值给另一个类

两个类我就不创建了,具体实现方法如下: /// <summary> /// 通过反射把一个类的属性的值赋值给另一个类 /// </summary> /// <typeparam name="D"></typeparam> /// <typeparam name="S"></typeparam> /// <param name="s"></param>

Java项目中每一个类都可以有一个main方法

Java项目中每一个类都可以有一个main方法,但只有一个main方法会被执行,其他main方法可以对类进行单元测试. public class StaticTest { public static void main(String[] args) { Employee[] staff=new Employee[3]; staff[0]=new Employee("Tom",40000); staff[1]=new Employee("Dick",60000); s

python进阶四(类的继承)【4-4 python中多重继承】

python中多重继承 除了从一个父类继承外,Python允许从多个父类继承,称为多重继承. 多重继承的继承链就不是一棵树了,它像这样: 1 class A(object): 2 def __init__(self, a): 3 print 'init A...' 4 self.a = a 5 6 class B(A): 7 def __init__(self, a): 8 super(B, self).__init__(a) 9 print 'init B...' 10 11 class C(

python进阶二(模块)【2-1 python之导入模块】

python之导入模块 要使用一个模块,我们必须首先导入该模块.Python使用import语句导入一个模块.例如,导入系统自带的模块 math: 你可以认为math就是一个指向已导入模块的变量,通过该变量,我们可以访问math模块中所定义的所有公开的函数.变量和类: >>> math.pow(2, 0.5) # pow是函数 1.4142135623730951 >>> math.pi # pi是变量 3.141592653589793 如果我们只希望导入用到的mat

java中,一个类实现某个接口,必须重写接口中的所有方法吗

不一定,关键要看子类是否是抽象类.如果子类是非抽象类,则必须实现接口中的所有方法: 如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!1.抽象类定义抽象类往往用来表征对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象.通常在编程语句中用 abstract 修饰的类是抽象类.在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象:在java中,含有抽象方法的类称为抽象类,同样不能生成对象.抽象类是不完整的,它只能用作基类

【OC学习-15】如何判断两个对象是否属于同一个类?如何判断一个对象是否属于某一个类?

每个对象都有一个isa,这个isa里面储存了很多关于类对象的一些信息,所以当这个对象编译的时候,程序会通过isa来查看这个对象的类型,即执行的时候再识别叫动态类型识别.而且这个对象里面的方法其实是被封装在SEL里面(有方法ID和内容),当外面利用方法传递消息的时候,先把这个方法ID化,然后找相同ID的方法,找到了就调用,找不到就通过isa里存储的信息往父类找,最终找不到,就报错.(相同的方法签名=相同的ID) (1)每个对象都可以调用类对象,如果它们是一个类出来的,它们的类对象也是一样的,所以判

python进阶四(类的继承)【4-5 python中获取对象信息】

python中获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: 1 class Person(object): 2 def __init__(self, name, gender): 3 self.name = name 4 self.gender = gender 5 6 class Student(Person): 7 def __init__(self, name, gender, score