时间: 2020-11-23|62次围观|0 条评论

    说面向对象之前,我们有必要提一下我们的老朋友函数,函数作为面向对象之前的产物,从诞生的那天注定了他的不平凡,早在C语言中根本没有面向对象这种概念,但是依旧C语言活的好好的。所以面向对象并不是必须的,面向对象的存在只是为了简化过程。

    我们不妨考虑一下,假设我们不知道面向对象,而此时我们需要写人,此时采用传统函数式编程,我们需要考虑人有多少属性,例如:人有头、胳膊腿等等等等、按照传统函数式的方法我们只能定义字典来去实现
 
people1 = {
"head":1,
"eyes":2 .........
}
 
    
此时我们当需要在写一个人的时候,只能通过复制来进行实现,并且扩展成本高,假设我们需要些1W个人,我们就需要copy 1W次(我靠想想都觉得恐怖,或许无聊的石鹏会这么干。。。。。)这不是重点,重点是当需要新增属性时,你就需要修改1W次。。。。。好吧疯了。。。。。此外当有人调用时你还不知道是谁在调用,无法进行监测,此外这是字典啊字典。。这就意味着任何人都可以修改,没错任何人,并且你还不知道是谁修改了,是不是和可怕。
    为了解决这个可怕的问题,面向对象就来了(在这里膜拜下写C的毕竟C可没有面向对象),用面向对象的方法解决刚才的问题,一切就变得简单,首先我们可以定义人这个类,然后在这个类中我们可以定义许多参数例如:头、眼睛、胳膊腿等等等等。来我们先举个栗子
    


class people(object):
    def _init_ (self,name)


    
    self.name = name


    def eye(self)


    
    print "%s have two eyes" %(self.name)


 
 
 
p1 = people("Jack")
p1.eye()
大家猜一下返回值会是什么,没错小明说的对,就是
Jack
 
have two eyes
首先我们定义了
p1 = people("Jack")(其实这就是对象的实例化),所以此时P1=people
而_init_就是对象的初始化,所以此时people的name就是p1的那么self。name就是Jack所以此时才会返回刚才的结果,好啦我们的头就开到这,其实面向对象的功能还有很多,比如继承、获取调用者(例如刚才的例子我们就知道Jack在调用),此外还可以进行限制用户的修改。在这里有必要说一句,为了节约内存空间、eye这种属性只存在一份。

 

转载于:https://www.cnblogs.com/lige-python/p/5021258.html

原文链接:https://blog.csdn.net/weixin_30342827/article/details/95126361

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《Python第六天—–面向对象
   

还没有人抢沙发呢~