Python面向对象编程__封装、继承、多态


简介

程序编程分为面向过程编程(Procedure Oriented)、函数式编程和面向对象编程。

面向过程编程是一种以过程为中心的编程思想。分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。最重要的是模块化的思想方法。
在这里插入图片描述

  • 特性:模块化 流程化
  • 优点:性能比面向对象高, 因为类调用时需要实例化,开销比较大,比较消耗资源;
    单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
  • 缺点:没有面向对象易维护、易复用、易扩展

函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是 λ 演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。主要思想是把运算过程尽量写成一系列嵌套的函数调用。

面向对象是按人们认识客观世界的系统思维方式,把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。相关的面向对象编程语言有C++、Java、Python等。

  • 特性:抽象、封装、继承、多态
  • 优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合 的系统,使系统更加灵活、更加易于维护
  • 缺点:性能比面向过程低
一、类和对象

类(Class)是现实或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。是创建实例的模板。
对象(Object)是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。是一个一个具体的实例。
类和对象的区别就是鱼和鲤鱼的区别。

类(Class)

class Cat:
    # 属性:一般是名词,eg: name, age, gender.....
    name = 'name'
    kind = 'kind'

    # 方法: 一般情况是动词 eg: create, delete, eating, run......
    def eat(self):
        print('cat like eating fish.....')

对象(Object):对类的实例化(具体化)

class Cat:
fentiao = Cat()

print(Cat)  # <class '__main__.Cat'>
print(fentiao)  # <__main__.Cat object at 0x00E9FD70>
二、面向对象的三大特性是指:封装、继承和多态
Ⅰ、封装特性

封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。所以,在使用面向对象的封装特性时,需要:

  1. 将内容封装到某处
  2. 从某处调用被封装的内容
    1). 通过对象直接调用被封装的内容:对象.属性名
    2). 通过self间接调用被封装的内容:self.属性名
    3). 通过self间接调用被封装的内容:self.方法名()

构造方法__init__与其他普通方法不同的地方在于,当一个对象被创建后,会立即调用构造方法。自动执行构造方法里面的内容。对于面向对象的封装来说,其实就是使用构造方法将内容封装到对象 中,然后通过对象直接或者self间接获取被封装的内容。

class Cat:
    def __init__(self, name, kind):  # 形参
        """
        1. 构造方法,实例化对象时自动执行的方法
        2. self实质上是实例化的对象
        3. 类方法中, python解释器会自动把对象作为参数传给self
        """
        print('正在执行__init__构造方法')
        print(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值