美文网首页python
了解什么是Python面向对象

了解什么是Python面向对象

作者: JokerW | 来源:发表于2019-12-30 14:01 被阅读0次

    今天马哥教育要跟大家分享的文章是了解什么是Python面向对象?也就是我们面向对象学习的第三节课,面向对象并不好理解,是因为大家习惯了面向过程,所以在这节课中我们将面向对象和面向过程做一个对比,以便大家更好地理解。Python入门新手和正在Python学习的小伙伴快来看一看吧,希望能够对大家有所帮助 !

    在刚开始编程的时候,从上到下一行行执行的简单程序容易被理解,即使加上if、while、for之类的语句以及函数调用,也还是不算困难。有了面向对象之后,程序的执行路径就变得复杂,很容易让人混乱。不过当你熟悉之后会发现,面向对象是比面向过程更合理的程序设计方式。

    今天我用一个例子来展示两种程序设计方式的不同。

    假设我们有一辆汽车,我们知道它的速度(60km/h),以及A、B两地的距离(100km)。要算出开着这辆车从A地到B地花费的时间。(很像小学数学题是吧?)

    面向过程的方法:

    speed = 60.0

    distance = 100.0

    time = distance / speed

    print time

    面向对象的方法:

    class Car:

    speed = 0

    def drive(self, distance):

    time = distance / self.speed

    print time

    car = Car()

    car.speed = 60.0

    car.drive(100.0)

    看上去似乎面向对象没有比面向过程更简单,反而写了更多行代码。

    但是,如果我们让题目再稍稍复杂一点。假设我们又有了一辆更好的跑车,它的速度是150km/h,然后我们除了想从A到B,还要从B到C(距离200km)。要求分别知道这两种车在这两段路上需要多少时间。

    面向过程的方法:

    speed1 = 60.0

    distance1 = 100.0

    time1 = distance1 / speed1

    print time1

    distance2 = 200.0

    time2 = distance2 / speed1

    print time2

    speed2 = 150.0

    time3 = distance1 / speed2

    print time3

    time4 = distance2 / speed2

    print time4

    面向对象的方法:

    class Car:

    speed = 0

    def drive(self, distance):

    time = distance / self.speed

    print time

    car1 = Car()

    car1.speed = 60.0

    car1.drive(100.0)

    car1.drive(200.0)

    car2 = Car()

    car2.speed = 150.0

    car2.drive(100.0)

    car2.drive(200.0)

    对比两种方法,面向过程把数据和处理数据的计算全部放在一起,当功能复杂之后,就会显得很混乱,且容易产生很多重复的代码。而面向对象,把一类数据和处理这类数据的方法封装在一个类中,让程序的结构更清晰,不同的功能之间相互独立。这样更有利于进行模块化的开发方式。

    面向对象的水还很深,我们这里只是粗略一瞥。它不再像之前print、while这些概念那么一目了然。但也没必要对此畏惧,等用多了自然就熟悉了。找一些实例亲手练练,会掌握得更快。

    恭喜你在Python的道路上又坚持了一天,今天我们用两道简单的数学题,对比了面向对象和面向过程,相信大家对面向对象有了更深的一点了解,如果你还是觉得面向过程更适合一点、更简单一点,那你就让这道数学题再复杂一些试试?如果还是不太理解面向对象,那就反复敲下代码、找些案例反复练习下,你会懂得!

    以上就是马哥教育今天为大家分享的关于了解什么是Python面向对象的文章,希望本篇文章能够对正在 python学习 和从事python相关工作的小伙伴们有所帮助,想要了解更多相关知识记得关注马哥教育官网。最后祝愿小伙伴们工作顺利!

    相关文章

      网友评论

        本文标题:了解什么是Python面向对象

        本文链接:https://www.haomeiwen.com/subject/qgfmoctx.html