【零基础高效率学Python】第六天面向对象-创新互联

目录 一、概念 二、面向对象分析 三、面向过程向面向对象的思想迁移 四、面向过程和面向对象的区别 五、面向对象的专业术语 六、类的定义及使用 七、魔术方法 八、面向对象的三大特征 一、概念

 面向对象在编程的时候尽可能去模拟现实世界,其中任何一个操作都需要一个实体来完成,实体就是动作的支配者,没有实体没有动作发生。

成都创新互联公司主要从事成都网站建设、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务长葛,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

二、面向对象分析

第一步:分析那些动作由那些实体发出的。

第二步:定义这些实体,为其添加相应的属性及功能。

  • 属性:就是实体固有的信息特征,本质就是以前的变量
  • 功能:实体可以完成的动作,本质就是以前的函数或方法

第三步:让实体去执行相应的功能或动作。

三、面向过程向面向对象的思想迁移

1、以前面向过程编写代码:

  • 首先考虑实现什么功能,然后调用什么函数,最后按部就班的实现需求

2、以后面向对象编写代码:

  • 首先考虑有什么样的实体去实现什么样的功能

  • 然后分装实体的属性及功能

  • 通过实体实现对应功能

四、面向过程和面向对象的区别

1、面向过程与面向对象都可以实现模块化编程代买也可以重用,但是面向对象的模块化更深,数据更封闭更安全。

2、现象对象的思维方式更加贴近现实生活,更容易解决大型的复杂业务逻辑。

3、从前期开发角度来说,面向对象比面向过程更复杂,但从维护或扩展的角度来说,面向对象远比面向过程简单。

4、面向过程的代码执行效率更高。

五、面向对象的专业术语 (一)面向对象开发的三大流程

面向对象分析->面向对象设计->面向对象编程

(二)类
  • 类是对现实世界一种模拟,在现实世界中任何一个实体都有一个类别

  • 类就是具有相同或相似属性和动作的一组实体集合

(三)对象(object)

1、概念:是一种抽象概念,对象是类实例化的结果。

2、对象分为2部分:

  • 静态属性:客观存在,不可忽视,如:人的姓名、性别……
  • 动态属性:行为,对象执行动作,如:人能跑步
(四)总结

对象使用属性保存数据,对象使用方法管理数据。

六、类的定义及使用 (一)面向对象开发的基本流程
  • 第一步:设计一个类

  • 第二步:使用类名()方法创建对象,创建对象分成2步:

    • 内存为对象分配空间

    • 调用初始化方法_ _ init_ _ () 为对象初始化

(二)定义一个类

1、经典类:

class 类名:
    """类的帮助信息"""
    代码

2、新式类:

class 类名():
    """类的帮助信息"""
    代码

3、注意

  • 类名遵循标识符命名规则(数字、字母、下划线组成,不能以数字开头)。

  • 类名为方法名区分开,应使用驼峰命名法,类中每个单词的首字母大写,而不使用下划线。

  • 对象名都应小写,单词之间使用下划线间隔。

4、类本质也是一个特殊的对象

  • python一切皆为对象,类是一个特殊的对象即类对象。

  • 程序运行时,类会被加载的到内存中,类对象只有一份,可以创建出多个对象实例。

(三)类的实例化

1、类的实例化就是把抽象的类具体实例化为现实世界的实体,即通过类得到对象。

2、分析:

  • 定义完毕一个类之后是不会创建一个实例对象的,若类好比一个汽车的设计图纸,该图纸只能告诉你怎么去造车,但图纸本身不是一辆车,不能开走他,只能制作车

  • 类本身什么都做不了,必须利用类得到一个实例化对象,利用对象实现功能

  • 根据类创建出对象的过程称为实例化

3、格式:对象名 = 类名()

(四)类中self关键字
  • 作用:指向类实例对象本身,用于访问类汇总属性和方法,在方法调用时会自动传递实际参数self。

  • 总结:类中self就是谁实例化了对象,则self就指向该对象,本质为对象的首地址,即代表对象本身。

(五)通过_ _ init_ _ ()方法进行初始化

  • python中_ _ xx_ _ () 方法称为魔术方法,是就有特殊功能的函数

  • 类创建后,手动编写_ _ init_ _ () 方法,类似于java的构造方法,创建对象时会被自动调用,用于默认属性值的初始化,使用双下划线开头和结尾,是一种特殊的约定,旨在区分其它方法

  • _ _ init_ _ (self) 本身再带self参数,必须时第一个位置,指向对象本身

(六)创建类的静态方法
  • 在开发时,如果需要在类中封装一个方法,该方法需要做到:

    • 既不需要其它对象调用,会自动执行

    • 用于打印一些提示、帮助信息等功能

  • 格式:@staticmethod,写在类中方法之前,用于修饰类中的方法,使其可以不创建类实例的情况下直接执行调用

  • 优点:执行效率高,不需要默认的self参数

(七)创建类的属性

概念:定义在类中且在函数体外部的变量称为类属性,类属性是所有对象的公共属性,在所有类的对象中共享。

PS:类属性变更,对象属性也会变化。

注意:类属性用于计数、控制、包含某个对象。

七、魔术方法 (一)python中_ _ xx _ _()函数称为魔术(魔法)方法,具有特殊功能 (二)_ _ str _ _() 方法
  • 当使用print()输出对象时,默认打印的是对象的内存地址

  • 如果类中定义_ _ str_ _ ()方法,则若再次print()输出对象时会输出_ _ str_ _ ()方法return的结果

注意:类的内部定义_ _ str_ _ ()方法,其return的结果会返回一个字符串数据类型

(三)_ _ del_ _() 方法
  • 称为删除方法或者析构方法

  • 注意:当删除对象时,python解释器会默认调用该方法

注意:_ _ del_ _() 方法主要用于删除对象后的后续操作,如:关闭文件、关闭数据库连接等。

八、面向对象的三大特征 (一)面向对象的三大特征--封装

1、封装有2层含义

  • 把主体的属性和方法卸载类里面的操作称为封装

    class  Person:
        # 封装属性
        # 封装方法
  • 封装可以为属性和方法添加私有权限

2、封装私有属性及私有方法

  • 属性和方法分为两大类:

    • 公有:无论在类内部还是类外部都可以对属性和方法进行操作

    • 私有:不允许在类的外部对类内部的属性和方法进行操作

3、私有属性的访问限制

  • 设置私有属性方法:在属性名或方法名前增加两个下划线_ _即可,例:self.__age = 18

4、私有属性或方法设置访问接口

  • 如果需要在类外部访问私有属性或方法,需要通过定义的接口来实现

  • python中一般使用函数名为get_xx命名的接口函数来获取私有属性,使用set_xx来修改私有属性

注意:私有方法定义方式与私有属性一致,在方法名之前添加2个下划线即可

5、封装的意义

  • 封装数据属性:明确区分内外,控制外部对隐藏的内部属性的操作,过滤掉异常数据

  • 封装方法:降低程序复杂度

6、装饰器@property封装

  • 作用:通过@property装饰器将一个方法转换为属性,从而实现调用方法时相当于调用属性,不需要园括号,代码更简洁

  • 格式:@property
     def  方法名(self):
    方法体

(二)面向对象的三大特征--继承

继承:一个类从另一个类获得其成员的相关特性

派生:从一个已有的类中产生一个新的类,称为派生,继承与派生其实是从不同方向来描述相同的概念,本质一致

父类:也称为基类,被继承的类

子类:称为派生类或扩展类

扩展:在子类中增加一些自己特有的特性,称为扩展,只有继承没有扩展则继承无意义

单继承:一个类只能继承自另一个类,不能继承多个类,称为单继承

多继承:一个类同时继承了多个父类

(三)面向对象的三大特征--多态

1、概念:多态是指一类事物有多重形态,是一种使用对象的方式,子类重写父类方法后,调用不同的子类对象的相同父类方法,可以产生不同的结果

2、特点

  • 多态依赖于继承
  • 子类方法必须重写父类方法
  • 当调用一个公共方法时,传递的对象不同,返回结果不同
都看到这里了,创作不易,大家点个赞再走呗!!!( ˃̶̤́ ꒳ ˂̶̤̀ )

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻标题:【零基础高效率学Python】第六天面向对象-创新互联
文章源于:http://ybzwz.com/article/poeij.html