再看python,对于面向对象编程与面向过程编程的理解

再看python,对于面向对象编程与面向过程编程的理解

由于学校免费给我们开放了一个python的学习课程,今天看到的类这一块的知识讲到了面向对象,于是对比之前用python做的一点小东西的过程,发现之前一直是以面向过程来实现功能的,看来面向对象编程的思想还并未深入我心(学的时候虽然理解了,但是长时间没用、实践没跟上),如果不是看这个课程,我恐怕还没反应过来什么才是面向对象编程。于是今天就在这里记录一下自己现在的理解。

面向过程编程。顾名思义,就是分析实现一个功能需要哪些步骤,首先考虑的就是一个顺序问题,先做什么,然后做什么。这里的重点就是对于各个步骤的分析和实现。

面向对象编程。面向对象,对于我们这种没有什么概念的初学者来说还是比较难以理解。这里的对象我的理解就是:对于一个“存在”的抽象表示,这个“存在”可以是你能想到的任何东西,在代码中可以是类、变量和函数等。面向对象编程在程序中就是实现功能时先不考虑步骤是怎样的,而是先分析能用到哪些对象,也就是分析要创建哪些类,然后再考虑每个类有哪些属性、需要实现什么方法

接下来就具体展示一下两种编程方法的代码

面向过程:

#有一种动物叫鲲,它能唱会跳还会打篮球
def animal(name):
	print("我是一只%s"%name)
def sing():
	print("我会唱歌")
def dance():
	print("我会跳舞")
def playBasketball():
	print("我还会打篮球")

name="鲲"
animal(name)
sing()
dance()
playBasketball()

运行结果:
在这里插入图片描述

面向对象:

#有一种动物叫鲲,它能唱会跳还会打篮球
class Animal():
	name = "  "
    def __init__(self,name):
        self.name=name
    def sing(self):
        print("我会唱歌")
    def dance(self):
        print("我会跳舞")
    def playBasketball(self):
        print("我还会打篮球")

kun = Animal("鲲")
print("我是一只%s"%kun.name) #为举例调用属性这样写
kun.sing()
kun.dance()
kun.playBasketball()

运行结果:
在这里插入图片描述
过观察代码发现面向过程编程是根据要实现的功能,先后创建了一个个函数,最终通过调用不同的函数来实现各种功能,也就是需要实现什么功能,就写对应的函数。
而面向对象编程,不需要考虑实现功能的步骤,而是根据功能来设计类,定义其中的属性和方法,最终通过实例化一个对象(代码中实例为:kun)来调用属性与方法。

虽然上面的例子中面向过程与面向对象的代码区别看起来不是很大,但是面向对象编程中的类方法,传递参数比普通函数要简单的多,也不用考虑全局变量与局部变量,直接在类中使用属性即可完成。当项目越来越大时,需要的参数会越来越多,面向对象编程会比面向过程编程更优越。
除此之外,面向对象编程还有更多的优越性,比如代码拓展性,可维护性等方面,因为有了类的约束,代码更有结构感,也更容易理解。

最后总结一下就是

面向对象编程面向过程编程
特点以对象为中心以过程为中心
内容类的创建和调用函数的创建和调用
程序组成一组对象的集合一系列过程的集合

以上仅个人理解与感悟,总的来说感觉讲述的还是比较浅,今日就做一个记录吧,若是今后再有感悟再来修改吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值