python面向对象和面向过程举例(python编程:面向对象与过程是什么?)
编程任何一个要素的学习都是基于更方便 ,更快捷 ,更效率而存在的 ,当然面向对象也一样 ,针对这部分知识 ,大家可以浏览以下内容 ,看完即懂 。
先来看一组示例:
面向过程思维:把大象装进冰箱需要三步:
【1】打开冰箱
【2】把大象装进去
【3】关闭冰箱
面向对象思维:“万物皆对象 ”
【1】你 、大象 、冰箱看成三个对象
【2】你发送消息给冰箱 ,传递力的参数给冰箱的门 ,门打开
【3】你传递消息给大象 ,大象响应消息,大象进冰箱
【4】你发送消息给冰箱 ,传递力的参数给冰箱的门 ,门关上
对象可以使用类的变量,属于对象或类的变量被称为域;对象也可以使用属于类的函数 ,这样的函数称为类的方法;域和方法可以合称为类的属性 。它们分别被称为实例变量和类变量。类使用关键字class创建 ,类的域和方法被列在一个缩进块中 。类的方法必须有一个额外的第一个参数,但是在调用时不为这个参数赋值 ,这个特殊变量指对象本身 ,按照惯例它的名称是self ,类似Java中的this 。
但是Python 类的确有私有变量和私有方法之说 ,这个是一个例外 ,如果使用的数据成员以双下划线为前缀 ,则为私有变量 。
你实例化这个类 ,访问不了 。这是很多人忽略 的 ,比如:
classpublic(): _name=protected类型的变量 __info=私有类型的变量 def_f(self): print("这是一个protected类型的方法")def__f2(self): print(这是一个私有类型的方法)defget(self): return(self.__info) pub=public()#先打印可以访问的print(pub._name) pub._f()####结果如下####protected类型的变量 这是一个protected类型的方法#打印下类私有变量和私有方法print(pub.__info) 报错:publicobjecthasnoattribute__infopub._f2() 报错:pub._f2()但是私有属性和方法可以在同一个类中被调用
pub.get()#######私有类型的变量上面是很多人不知道的 ,下面,声明一个Person类
classPerson(): Count=0 def__init__(self,name,age): Person.Count+=1 self.name=name self.__age=age p=Person("Runsen",20) print(p.Count)#1说明我实例化 ,这个__init__方法就要执行print(p.name)#Runsenprint(p.__age) #AttributeError:Personinstancehasnoattribute__age#私有变量访问不了 ,报错创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!