首页 > 编程语言 > 详细

Python学习笔记:面向对象

时间:2020-04-29 14:42:25      阅读:57      评论:0      收藏:0      [点我收藏+]

一、编程范式

  1、定义:简单说就是程序员为了解决一系列编程问题而才用的编程套路,比如面向过程式编程,面向对象式编程,函数式编程,都属于编程范式。

  2、面向过程编程:为计算机执行流程定义了一系列的函数,计算机将顺序执行完成任务。

    • 优点:便捷、快速完成编程任务
    • 缺点:维护困难,改一处,别的依赖的代码也需要更改。
    • 使用场景:适合在今后工作中无需更改的地方使用,比如数据库连接,如果公司以后也没有用oracle,只用mysql数据库,那么这里就可以用面向过程式编程。

  3、面向对象编程(OOP ):利用类和对象创建各种模型,来实现对真是世界的描述。

    • 优点:维护扩展更简单,大大提高程序开发效率。使他人更容易理解你的代码逻辑,团队开发更从容。
    • 缺点:效率比面向过程低,需要语言特定支持。 
    • 类(Class): 这是对现实世界的一类对象的抽象总结,比如人类,动物类等等,里面包含了这类事物的共性功能(方法)和属性。
    • 对象(object):某一个类(Class)的具象化的表达,比如人类,那么对应到对象就是某个具体的人。
    • 总结:世界万物皆是对象,所有对象皆属于某个品类   

二、面向对象的特性

  1、封装(Encapsulation):即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别,这使得从外界看来封装的代码是不透明的,不需要关心内部发生的事情,大大降低了使用的复杂性。

  2、继承(Inheritance):一个类可以派生出子类,子类可以继承父类的方法和属性,也可以对其进行改写以适应新的对象,这个过程就是继承

  3、多态(polymorphism):简单说是“一个接口,多种实现”就是多态,因为子类继承了父类,并且可能对父类中的共有方法进行更改,使得同个类的对象表现出多种形态,并且支持使用父类引用来统一调用,这就对外界实现了统一的调用接口,又大大降低了代码的复杂性,比如生活中的电器都是很复杂的,但是使用者不需要了解其原理,只需要读说明书掌握使用方法即可。

  4、为什么使用面向对象编程?

    • 编程中要尽量不写重复的代码,因为你的程序需要经常修改,如果重复代码很多,那么需要多处修改,导致程序千疮百孔,不稳定,开发效率低下,所以将公用的代码写在一处势在必行。
    • 面向过程将公用代码写在一个函数里然后多处调用就是很好的方法。
    • 面向对象比面向过程更有利于组织和扩展代码,大大提升效率。        

  5、构造函数:实例化类时做初始化的工作,用__init__(self)定义,同时传递一个self内存地址,代表此对象的内存地址赋给自己

  6、对象的属性:

    • 在构造方法中被赋值,将对象属性的值通过构造方法参数self赋值给该对象。  
    • 作用域是对象本身,对象之间不能公用。

  7、类的属性:

    • 可以通过类名直接调用,也可以通过对象调用,他们的值是一样的。   
    • 如果对象属性和类属性同名则先找对象属性再找类属性
    • 如果修改了类属性的值,则多个对象都会改变其值,除非该对象有一个同名的对象属性(会优先调用对象属性)

  8、类的方法:因为方法都是统一在类中定义而且每一个继承该类的对象都有相同的方法,所以无需每个对象都存方法,只需要存一份类方法即可,每一个类方法都默认传递一个self变量,告诉此类方法调用它的是哪一个对象。

 

  

  

Python学习笔记:面向对象

原文:https://www.cnblogs.com/tangwei-fuzhou/p/12800259.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!