面向对象编程
专注于为中小企业提供成都网站建设、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业天柱免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
面向过程编程:Procedure Oriented Programming,简称POP。在之前的介绍中,多是用面向过程的思想。面向过程的思想是一种是事件为中心的编程思想,即分析出解决问题所需的步骤,然后用函数把这写步骤实现,把大块函数切成小块函数,并按顺序调用。
面向对象编程:Object Oriented Programming,简称OOP。面向对象的思想就是以对象为中心的编程思想,程序的执行过程就是一系列信息在各个对象之间传递的过程。
什么是对象?在Python中,一切的数据类型都可视为对象,“万物皆对象”。
类 Class
Class,类,是面向对象编程最重要的概念之一。类是抽象的模板,而实例就是根据类创建出来的对象。比如:
类 | 实例 |
---|---|
杯子 | 马克杯、玻璃杯、高脚杯... |
动物 | 猫、狗、兔子... |
电器 | 冰箱、电视、空调... |
类的定义
在Python中,通过class关键字来定义一个类:
class Animal(object): pass
Animal是类名,类名一般以大写字母开头,后面( )表示该类从哪一类继承,若没有合适的继承类,就用object,因为所有类都会继承该类,继承是面向对象的三大特征之一,后面会介绍。
类的属性
完成了类的定义之后,我们可以定义类的属性,如:
class Animal(object): name = 'animal'
调用其属性时,用“对象名.属性名”的形式来调用,如:
>>>Animal.name animal
实例 Instance
Instance,实例,是面向对象编程最重要的概念之一。实例就是根据类创建出来的对象。事实上,面向对象编程就是对“类”和“实例”的使用。
实例的定义
有了类之后,就可以根据类来定义对应的实例。
>>>dog = Animal()>>>dog <__main__.Animal object at 0x0000000001DB8780>
上面dog就是Animal的一个实例,后面的0x0000000001DB8780便是内存地址。
实例的属性
同样的,我们可以定义实例的属性
>>>dog.name = 'dog' >>>dog.name dog
由于类是实例的一个模板,一般而言,我们在定义类的时候就可以把对应实例的属性给绑定上去。这需要在类里面定义一个__init__方法(方法类似于函数,在后面会介绍),如
class Animal(object): name = 'animal' def __init__(self,name,age): self.name = name self.age = age
注意到__init__方法的第一个参数永远是self,表示创建实例本身,self就是指向实例的,随后加入需要的参数。这样在创建实例时就要输入对应的参数了,但是self参数不需要输入,因为Python解释器自己会把实例变量传进去。
>>>dog = Animal('dog',3) >>>dog.name dog >>>dog.age 3
需要注意的是,实例可以访问到其类的属性,如我们将dog的name属性删掉再调用。
>>>del dog.name >>>dog.name animal
可见,在dog访问了Animal的name属性,而当dog有name属性时则优先访问dog的属性。
方法
方法可以理解成在类中定义的函数,与函数不同的一点是,方法的第一个参数一定是self,而其他与函数相同,同样可以用默认参数、可变参数、关键字参数和命名关键字参数。
上面的__init__就是一个方法,当然,我们还能定义其他的方法,比如我们在Animal中增加一个say方法:
class Animal(object): name = 'animal' def __init__(self,name,age): self.name = name self.age = age def say(self): print('wow...wow')
可以通过实例来调用方法,形式是“实例名.方法名(参数)”,如
>>>dog = Animal('dog',3) >>>dog.say() wow...wow
当前名称:创新互联Python教程:详解Python面向对象编程之类、实例、方法
浏览地址:http://www.shufengxianlan.com/qtweb/news16/512916.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联