继承
来源:互联网 发布:仿淘宝手机端筛选样式 编辑:程序博客网 时间:2024/05/22 23:53
'''**********继承**********'''#基本类定义class Human: def say(self,messaeg): print('i said that {}'.format(messaeg))class Method: def sleep(): pass'''继承的表示方法'''#定义一个类的时候在后面跟上括号,中间书写的名称即表示当前定义类所继承的类class Person(Human, Method): pass'''************继承的理解************'''#对象的理解''' 对象可以看做是方法和变量固定组合的模板 创建对象时,就是复制原来组合归类的某个模板(类)指定到一个名称(对象)的空间下 对对象进行操作的时候,就是在指定空间内查找对应的属性或方法进行相关的操作'''#对象的异同''' 根据上述的理解,可以将类分作三种类别 1.方法类 定义: 这种类内部,只存在方法,不涉及任何变量 特征: 通过类名,查找基本模板空间内的方法 也可以通过实例化,拷贝方法到新的对象空间内,然后查找对象空间中的方法 方法的操作物料均从外界获取 是行为集合 2.属性类 定义: 这种类中,仅包含变量的定义,不涉及方法操作 特征: 通过类名或实例化对象,访问或修改空间内变量 有自我的属性,只能被加工(读取,修改),没有行为(方法) 是属性集合 3.对象类 定义: 包含方法和变量 特征: 自身拥有属性(变量),也拥有可以对自身或外部进行反应(行为)的方法 是完整生命 还有一种特殊的分类,单独区别于其他三种类别 0.模块类(见上方Method) 定义: 同方法类,但是方法传参不包含self关键字 特征: 相当于模块,引入类空间可直接调用方法,是完全没有生命的函数类形态归类 没有个体概念,没有生命气息 继承对三种类的影响 1.方法类: 更多功能的工具 2.属性类: 拥有更多属性的植物人 3.对象类: 更多的属性,更多的行为,更复杂的人 0.模块类: 更大的模块... ''''''**************self理解************'''''' self就是当前对象 是生命的象征 没有生命的属性就是变量 没有生命的行为就是函数 self是生命(对象)本身 只存在本身当中 可以访问自身属性 可以驱使自身行为 ''''''*********继承方法和属性的调用********''''''继承基本调用'''#生命类继承调用,模块类以外self.messageself.hello()#通过关键字self就可以对相关属性或方法进行调用#模块类继承调用hello()#模块类无生命,不用self关键字,继承模块类相当于导入模块操作'''继承特殊调用'''#类名调用h = Human()Human.say(h,'message')#类是模板,自身没有生命,行为调用需要生命的参与#类名调用,self自身没有生命,不能够自动完成填充#此时的self只相当于一个入参,需要外部对象(生命)传入#父类调用super(Person, self).__init__(params)#调用父类指定方法''' 注意: 左半为指定父类,super传入当前类名和对象 右侧为指定方法,方法直接传入参数,不在需要传入self''''''*********多继承方法搜索********''''''两种类声明方式'''#经典类class A: pass #新式类class A(object): pass#python2中支持两种类的声明#python3中仅支持新式类的书写'''深度搜索和广度搜索'''''' 多继承的类,调用父类方法时存在两种搜索方式 1.深度搜索 从继承的第一个类开始,查找类中是否存在调用的方法,不存在就查找第一个类的全部继承类 重复这种操作,直到查询完毕,查询到则返回,查找不到就查询下一个继承类 2.广度搜索 依次搜索继承的类,不查找继承类的更上一层 查询到则返回,查询不到更换为深度搜索,从最后一个类向前搜索 搜索支持 1.经典类: 当继承父类为基本类时,采取深度搜索 2.新式类: 当继承父类为基本类时,采取广度搜索 注意: 两种类的继承书写方式都是一致的 采取何种搜索方式取决于最基本的元类的书写方式 '''
阅读全文
0 0
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 继承
- 5-8 二分搜索树的删除,删除一个节点的步骤2
- java虚拟机学习笔记二
- 网易互娱笔试题----最多有多少点在一条直线上
- Redraiment猜想+素数求和
- java正则表达式实例
- 继承
- Win7+Ubuntu双系统时间不一致
- window7 64bits+VS2015下openCV3.3.0安装
- UnityScript Awake()和Start()的小区别
- Hive2.1.1环境部署
- 5-9 二分搜索树的顺序性
- 选择排序之简单选择
- 5-10 二分搜索树的局限性
- 将已存在的本地旧项目提交到远程gitee(码云)/github