时间:2021-05-22
面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度
python和java都是面向对象的语言。面向对象编程的特点数据封装、继承和多态
1.类和实例
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
在python中,定义类同样也是使用class关键字,class后面紧跟着的是类名,需要开头大写,之后的括号里表示的是继承的哪个类,即它的父类。
我们可以自由地给这个变量绑定属性
>>>nick.name = 'Liu Ling Hao'>>>nick.name'Liu Ling Hao'而之后定义的不同的函数则是方法。总结来说对象=属性+方法
由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。此时就需要用到比较特殊的__init__方法。(int 前后各有两个下划线)
__init__方法的第一个参数永远是self,表示创建的实例本身。
当有了__init__方法之后,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数
2.封装,继承和多态
面向对象编程的一个重要特点就是数据封装。
就像上面例子中的name和score,我们可以直接在类的内部定义的函数去访问,,比如可以添加一个数据或者对于一个列表进行排序,我们可以实现,但是我们并不知道它的内部是通过如何调节而实现的。
当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。
继承的好处就是获得了父类的全部功能,对于子类而言,可以在父类的基础上接着写,更加方便
当然子类如果有和父类同样的方法时会自动覆盖掉父类的
多态:不同对象对同一方法响应不同的行动
>>>class Nick1: def name(self): print("我是1")>>>class Nick2: def name(self): print("我是2") >>>a = Nick1()>>>b = Nick2()>>>a.name我是1>>>b.name我是2使用的函数名虽然一样但是实现并不一样。
def run(animal): animal.run() animal.run() >>> run(Animal())Animal is running...Animal is running...>>> run_twice(Dog())Dog is running...Dog is running...多态的好处就是,当我们需要传入Dog或者其它动物时,我们只需要接收Animal类型就可以了,因为Dog都是Animal类型,然后,按照Animal类型进行操作即可。由于Animal类型有run()方法,因此,传入的任意类型,只要是Animal类或者子类,就会自动调用实际类型的run()方法,这就是多态
以上所述是小编给大家介绍的Python面向对象编程详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python面向对象封装操作。分享给大家供大家参考,具体如下:目标封装小明爱跑步存放家具01.封装封装是面向对象编程的一大特点面向对象编程的第一步
C++中函数重载、覆盖与隐藏详解在C++语言中,函数扮演着很重要的角色,不管面向过程设计,还是基于对象设计;不管是面向对象编程,还是基于泛型编程,函数都可以随处
Python类的继承详解Python既然是面向对象的,当然支持类的继承,Python实现类的继承比JavaScript简单。Parent类:classParen
Python基础教程之闭包的使用方法前言:闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式(而面向过程编程和面向对象编程也都是编程范
Python非常易学,强大的编程语言。Python包括高效高级的数据结构,提供简单且高效的面向对象编程。Python的学习过程少不了IDE或者代码编辑器,或者集