python3 类的继承
来源:互联网 发布:hp打印机输入端口名 编辑:程序博客网 时间:2024/05/14 16:02
类的继承
继承
基本语法:
class DerivedClassName(BaseClassName1): <statement-1> . . . <statement-N>
需要注意圆括号中父级类的顺序,若是父级类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找父级类中是否包含方法。
示例:
class A(object): passclass B(object): passclass C(A, B): pass
C 继承了 A 和 B,C 称为 A,B 的派生类,C 可以直接获取 A 和 B 里面定义的所有方法和变量
派生类
在寻找变量和方法的时候,优先寻找自身的方法和变量
,最后在去继承的类里面去寻找。类自身的
__init__
方法不会被其他类调用。但是可以调用。参考继承示例
继承示例
# 定义基本类class people(): #定义基本属性 name = '' age = 0 #定义私有属性,私有属性在类外部无法直接进行访问 __weight = 0 #定义构造方法构造器 def __init__(self,n,a,w): self.name = n self.age = a self.__weight = w def speak(self): print("%s 说: 我 %d 岁。" %(self.name,self.age))# 定义单继承类class student(people): grade = '' def __init__(self,n,a,w,g): #调用父类的构造函数 people.__init__(self,n,a,w) self.grade = g # 覆盖写入父类的方法 def speak(self): print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))s = student('ken',10,60,3)s.speak()
父级类的
__init__
方法可以被子级的类调用子级类如果包含和父级类一样的变量或方法,会在调用的时候,覆盖父级类的变量或方法。
多继承
示例
class DerivedClassName(Base1, Base2, Base3): <statement-1> . . . <statement-N>
需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找父类中是否包含方法。
若子类中有相同的方法或变量,优先调用子类的方法或变量
#类定义class people: #定义基本属性 name = '' age = 0 #定义私有属性,私有属性在类外部无法直接进行访问 __weight = 0 #定义构造方法 def __init__(self,n,a,w): self.name = n self.age = a self.__weight = w def speak(self): print("%s 说: 我 %d 岁。" %(self.name,self.age))#单继承示例class student(people): grade = '' def __init__(self,n,a,w,g): #调用父类的构函 people.__init__(self,n,a,w) self.grade = g #覆写父类的方法 def speak(self): print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))#另一个类,多重继承之前的准备class speaker(): topic = '' name = '' def __init__(self,n,t): self.name = n self.topic = t def speak(self): print("我叫 %s,我是一个演说家,我演讲的主题是 %s"%(self.name,self.topic))#多重继承class sample(speaker,student): a ='' def __init__(self,n,a,w,g,t): student.__init__(self,n,a,w,g) speaker.__init__(self,n,t)test = sample("Tim",25,80,4,"Python")test.speak() #方法名同,默认调用的是在括号中排前地父类的方法
阅读全文
0 0
- python3-类的继承
- python3 类的继承
- day10_python2和python3的继承
- Python3 类继承 导入类
- python3 中多继承的顺序问题
- python3.3 类与继承 小例
- python3 入门 (四) 类与继承
- python3 入门 (四) 类与继承
- Python2与Python3中关于最上层类继承上的一点小差异
- Python3.5——面向对象——类的继承和多态
- 【Python】Python3 多继承的super init()问题
- python3 类的学习
- Python3之继承与组合
- Python3之继承,归一化设计
- c++类的继承:私有继承,公有继承,保护继承
- 【PythonDjango后台实例 第三章】Python3.6.1+Django1.8 模版的继承使用
- Python3 面向对象——继承,重写,类属性与方法
- Python3.2官方文档翻译--继承
- recycleView的多布局
- 表单验证
- 备份一下手工书写Android JNI工程时mk的模板,以及uses VFP register arguments, output does not问题
- Java5 并发学习
- MySQL DATE_FORMAT() 函数
- python3 类的继承
- NodeMCU针脚说明
- php 安装swoole扩展
- 自己在家做烧饼
- Projects Review
- 【NOIP模拟】 (10.24) T3 math
- 自定view画圆
- Docker 镜像使用
- ADB端口5037被占用的问题