Python面向对象编程(通俗理解)

面向过程vs面向对象

什么是面向过程?

相信大家都知道C语言是面向过程语言,C++则是面向对象语言。C语言通常是我们接触的第一门编程语言,它的重点在于数据结构的设计和一步步实现算法,即“如何通过一个过程,对输入进行运算处理得到输出”。通过算法对输入进行处理得到输出
假如我们现在要开发一个把大象装进冰箱的程序,我们需要做哪些工作?

  1. 分别设计大象和冰箱的数据结构。
  2. 设计一个“把大象装进冰箱”的函数(包括如何计算大象体积、重量等,如何将大象打包进冰箱、开关冰箱等等)。

什么是面向对象?

面向对象即以对象为核心,把对象作为基本的结构单元,将重点放在对对象的抽象和拓展
同样设计一个把大象装进冰箱的程序,我们需要做什么?

  1. 设计一个大象类(包括大象的各项特征值,如何将大象打包进冰箱等)。
  2. 设计一个冰箱类(包括如何开关冰箱门等)。
    虽然面向对象和面向过程中都有“如何把大象装进冰箱”这一核心算法,但是面向过程的代码无法复用,效率较低。假设我们不仅要将大象装进冰箱,还要将其他动物装进冰箱,这时就可以利用面向对象中的继承特性,设计一个animal类。

Python面向过程vs面向对象

面向过程

student1 = {'name':'Bob','age':21}
student2 = {'name':'Alice','age':22}
# 定义一个函数输出两个学生信息
def print_info(student):
    print('姓名:%s,年龄:%d' % (student['name'],student['age']))
# 输出某一个学生的信息
print_info(student1)
print_info(student2)

先定义学生的数据结构再设计输出学生信息的函数,最后打印。是很典型的“输入+处理+输出”模式。

面向对象

class Student(): # 定义一个类
    def __init__(self,name,age,weight):
        self.name = name  
        self.age = age
        self.__weight = weight #加下划线是不想被外界访问,只能通过函数访问(类的封装)
    def info(self): # 定义一个方法
        print('姓名:%s,年龄:%d,体重:%d' % (self.name,self.age,self.__weight))
    def change_age(self,new_age): #所有方法的第一个参数一定是self
        self.age = new_age
        self.info()

定义学生类,设计构造方法、输出学生信息的方法与改变学生年龄的方法,重点放在了对象(即学生类)的抽象上。

student1 = Student('John',22,65) # 类的实例化
student2 = Student('Lisa',24,57)
student1.info() #打印学生信息
student2.info()
student2.change_age(38) #改变学生年龄并输出
student1.change_age(13)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值