深度学习所需的python-学习笔记9
2017-10-24 19:04
190 查看
继承和多态
继承的意思是是的开发者可以先创建一个较为宽泛的类,再逐步拓展细化成为具体的类,
例如先定义一个“动物“类,再继承得出”哺乳动物“类。
通过继承,让具体的类不仅仅继承了原有类的实例变量和方法,也可以加入自己的实例变量和方法。
这样做可以提高编码效率,是一种很好的编码风格。
概念
如果类Y继承了类X,那么X就称为"超类"或者”基类“,Y叫作”子类“或”派生类“。注意,私有的实例变量和方法才能被子类访问。
创建子类的语法:
class SubClass(BaseClass):
#实例变量
#实例方法继承和派生
class Vehicle:
def __init__(self, name, color):
self.__name = name # __name是Vehicle的私有变量
self.__color = color
def getColor(self):
return self.__color
def setColor(self, color):
self.__color = color
def getName(self):
return self.__name
class Car(Vehicle):
def __init__(self, name, color, model):
# 调用父类构造器,设置车名和颜色
super().__init__(name, color)
# 增加新的变量:model
self.__model = model
def getDescription(self):
return self.getColor() + "色" + self.getName() + self.__model
# 方法getDescrition可以通过继承关系调用getName(), getColor()
c = Car("法拉利", "红", "458")
print(c.getDescription())
print(c.getName()输出结果是
红色法拉利458
法拉利
可以看出,再子类Car中,我们并没有定义getNmae()这个方法,但是仍然可以在类中访问,是因为,该子类继承了基类。
super()这个方法就是用来调用基类方法的,假设我们要从子类中调用基类的方法getcolor(),那么在子类代码中就需要使用
super().getcolor()
与C#,Java这些语言不同,python允许多重继承,也就是可以使用多个基类:
class SubClass(SuperClass1, SuperClass2, ...):
# initializer
# methods
继承的意思是是的开发者可以先创建一个较为宽泛的类,再逐步拓展细化成为具体的类,
例如先定义一个“动物“类,再继承得出”哺乳动物“类。
通过继承,让具体的类不仅仅继承了原有类的实例变量和方法,也可以加入自己的实例变量和方法。
这样做可以提高编码效率,是一种很好的编码风格。
概念
如果类Y继承了类X,那么X就称为"超类"或者”基类“,Y叫作”子类“或”派生类“。注意,私有的实例变量和方法才能被子类访问。
创建子类的语法:
class SubClass(BaseClass):
#实例变量
#实例方法继承和派生
class Vehicle:
def __init__(self, name, color):
self.__name = name # __name是Vehicle的私有变量
self.__color = color
def getColor(self):
return self.__color
def setColor(self, color):
self.__color = color
def getName(self):
return self.__name
class Car(Vehicle):
def __init__(self, name, color, model):
# 调用父类构造器,设置车名和颜色
super().__init__(name, color)
# 增加新的变量:model
self.__model = model
def getDescription(self):
return self.getColor() + "色" + self.getName() + self.__model
# 方法getDescrition可以通过继承关系调用getName(), getColor()
c = Car("法拉利", "红", "458")
print(c.getDescription())
print(c.getName()输出结果是
红色法拉利458
法拉利
可以看出,再子类Car中,我们并没有定义getNmae()这个方法,但是仍然可以在类中访问,是因为,该子类继承了基类。
super()这个方法就是用来调用基类方法的,假设我们要从子类中调用基类的方法getcolor(),那么在子类代码中就需要使用
super().getcolor()
与C#,Java这些语言不同,python允许多重继承,也就是可以使用多个基类:
class SubClass(SuperClass1, SuperClass2, ...):
# initializer
# methods
相关文章推荐
- 深度学习所需的python-学习笔记1
- 深度学习所需的python-学习笔记6
- 深度学习所需的python-学习笔记5
- 深度学习所需的python--学习笔记11
- 深度学习所需的python--学习笔记7
- 深度学习所需的python-学习笔记4
- Python学习笔记8-类的继承 、深度优先、广度优先
- 神经网络与深度学习笔记(二)python 实现随机梯度下降
- 深度学习笔记一:BP神经网络的介绍和Python代码实现(2)
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-03-基于Python的LeNet之LR
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-02-基于Python的卷积运算
- 深度学习Caffe实战笔记(12)Caffe 使用Python接口No module named google.protobuf.internal修复方案
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP
- python 机器学习算法实现 深度学习笔记
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-02-基于Python的卷积运算
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP
- 【深度学习】笔记18 Ubuntu16.04下python2.7IDLE的安装
- 吴恩达深度学习笔记 2.10~2.18 向量化与python
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP