深圳市测绘建设局网站,网站建设 博采网络,wordpress缩略图只生成full,可以怎么找回密码一#xff0c;继承1#xff0c;定义#xff1a;通俗语言的将继承就是儿子继承父亲的。在面向对象里面。就是子类继承父类的属性和方法。2#xff0c;基本语法#xff08;私有属性和私有方法除外#xff09;#定义父类
class A(object):#这个其实可以理解为也是一种继承。o…一继承1定义通俗语言的将继承就是儿子继承父亲的。在面向对象里面。就是子类继承父类的属性和方法。2基本语法私有属性和私有方法除外#定义父类 class A(object):#这个其实可以理解为也是一种继承。object基础类简称“基类” pass #定义子类 #在这里面子类B继承父类A class B(A): pass案例人类——学生和老师#定义父类 class Person(object):#这个其实可以理解为也是一种继承。object基础类简称“基类” def eat(self): print(我是人类我要吃饭) def drink(self): print(我是人类我要喝水) #创建学生子类 class student(Person): #占位符。没有任何功能。但可以保证程序正常运行 pass #创建教室类 class teacher(Person): # 占位符。没有任何功能。但可以保证程序正常运行 pass #类的实例化(创建对象)实例化学生类 s1 student() #调用父类中的方法 s1.eat() s1.drink() #类的实例化(创建对象)实例化教师类 t1 teacher() #调用父类的方法 #调用父类中的方法 t1.eat() t1.drink()3,关于继承的几个基本概念继承一个类从另一个已有的类获得其成员的相关特性就叫作继承派生从一个已有的类产生一个新的类称为派生很显然继承和派生其实就是从不同的方向来描述的相同的概念而已本质上是一样的父类也叫作基类就是指已有被继承的类子类也叫作派生类或扩展类扩展在子类中增加一些自己特有的特性就叫作扩展没有扩展继承也就没有意义了单继承一个类只能继承一个父类不能继承多个父类单继承也是大多数面向对象语言的特性多继承一个类同时继承了多个父类4单继承1单继承#定义父类 #单继承 class Person(object): pass #创建学生子类 class student(Person): pass2多层继承#定义父类 class A(object): pass #B类继承A类 class B(A): pass #C类又继承B类 class C(B): pass4多继承就是一个类可以继承多个父母类#定义父类A class A(object): pass #定义父类B class B(object): pass #C类又继承A,B类 class C(A,B): pass案例#定义父类A class A(object): def a(self): print(这是A类中的方法) #定义父类B class B(object): def b(self): print(这是B类中的方法) #C类又继承A,B类 class C(A,B): pass #todo 实例化对象。在这里实例化的是c c1 C() #调用父类A中的方法c继承A的方法 c1.a() #调用父类B中的方法。c继承B的方法 c1.b()5.重写定义重写就是覆盖子类继承父类的方法和属性。是当子类成员与父类成员名字相同的时候从父类继承下来的成员会重新定义#创建父类 class Father(object): #属性 #方法 pass class son(object): #继承出父类的属性和方法 #自己的属性和方法 #todo 但是自己的属性和方法与父类的属性和方法名字一致时。这就是重写 pass案例#以动物类示范 #1首先创建父类 class Anima(object): #创建父类的方法 def cell(self): print(动物都回发出声音) def eat(self): print(动物都需要吃东西) #2,创建猫的子类 class cat(Anima): #重写父类的方法。与父类的方法名字一样 def cell(self): print(哈吉米南北绿豆) #创建马的子类 class horse(Anima): # 重写父类的方法。与父类的方法名字一样 def cell(self): print(曼波) #3创建对象 c1 cat() h1 horse() #4调用方法 c1.eat() c1.cell() h1.eat() h1.cell()问题如果子类重写了父类的方法那么父类的方法还存在吗答存在。因为类调用的方法的顺序是从子类中寻找以我的cat类举例子。我cat类中存在cell方法。所以会优先访问子类中cell。当我调用cat类的eat方法时在子类中没有找到。在调用父类中的eat方法。6super调用父类的属性和方法作用调用父类的属性和方法完整写法super().属性或super().方法名()举例#以动物类示范 #1首先创建cat类 class cat(object): def __init__(self,color,name,age): self.color color self.name name self.age age def active(self): print(哈吉米都会抓老鼠) #2,创建白猫的子类 class white_cat(cat): #重写父类的方法。与父类的方法名字一样 def active(self): print(f我是一只名字叫{self.name}猫我的颜色是{self.color},我今年{self.age}岁了) #创建黑猫的子类 class black_cat(cat): #给添加自己的属性同时继承父类的属性 def __init__(self, color, name, age,weight): super().__init__(color, name, age)#self.color color # self.name name # self.age age #体重属性。属于黑猫的自己属性 self.weight weight def active(self): print(f我是一只名字叫{self.name}猫我的颜色是{self.color},我今年{self.age}岁了,我的体重是{self.weight}) #3创建对象 bm white_cat(白色,白猫,5) hm black_cat(黑色,黑猫,8,11) #4调用方法 bm.active() hm.active()7,MRO属性和MRO方法我们可以通过类名.__mro__或类名.mro()获得“类的层次结构”方法解析顺序也是按照这个“类的层次结构”寻找到。#以动物类示范 #1首先创建cat类 class cat(object): def __init__(self,color,name,age): self.color color self.name name self.age age def active(self): print(哈吉米都会抓老鼠) #2,创建白猫的子类 class white_cat(cat): #重写父类的方法。与父类的方法名字一样 def active(self): print(f我是一只名字叫{self.name}猫我的颜色是{self.color},我今年{self.age}岁了) #创建黑猫的子类 class black_cat(cat): #给添加自己的属性同时继承父类的属性 def __init__(self, color, name, age,weight): super().__init__(color, name, age)#self.color color # self.name name # self.age age #体重属性。属于黑猫的自己属性 self.weight weight def active(self): print(f我是一只名字叫{self.name}猫我的颜色是{self.color},我今年{self.age}岁了,我的体重是{self.weight}) print(white_cat.__mro__) print(black_cat.mro())今天没有作业哦。但本章节的代码都要自己手动敲写一遍哦