发布时间:2019-07-24 09:53:46编辑:auto阅读(1517)
class 类
object 对象
object-oriented programming 面向对象,简称OOP
attribute 属性
method 方法
inheritance 继承
python中通过类和对象来实现 面向对象的编程
面向对象编程,最重要、主要的目的是:提高程序的重复使用性,这和函数的目的类似
python中一切皆对象,类也是对象
1 类是属性相近对象的归类
在人类认知中,会根据属性相近把‘东西’归类,并且给‘类别‘命名
比如鸟类共同属性是有羽毛,通过产卵生育后代。任何一只特别的鸟都是建立在鸟类的原型基础上
面向对象就是模拟了以上人类认知的过程。在python中,上述的‘东西‘称为对象
定义鸟类
- class Bird(object):#类,鸟;类
- have_feather = True#变量,羽毛;属性
- way_of_reproduction = 'egg'#变量,生殖方式;属性
定义类,名字鸟
该‘类别’中定义变量,1是否有羽毛,2生殖方式
这2个变量对应我们之前所说的属性
假如我养了一只小鸡,叫summer。他是个对象,属于鸟类。使用前面定义的类
- summer = Bird()#创建对象,初始化类
- print summer.way_of_reproduction#调用类属性
第一句赋值语句,创建了对象并说明summer是类’鸟’中的一个对象, summer就有了鸟的’类属性'
对属性的引用是通过 对象.属性(object.attribute)的形式来实现
2 类属性可以是变量,也可以是方法(动作)
在人类日常认知中,我们在通过属性识别‘类别‘的时候,有时候会根据这个’东西’能做什么事情来区分类别
比如,鸟类会移动(这样就可以和房屋的类别区分开了)。而这些动作又会带来一定的结果,比如通过移动会带来位置的变化
python中,这样的属性称为方法。python中通过在’类内部定义函数’,来说明方法
- class Bird(object):
- have_feather = True
- way_of_reproduction = 'egg'
- def move(self, dx, dy):#属性,表现:类的函数
- position = [0,0]
- position[0] = position[0] + dx
- position[1] = position[1] + dy
- return position
- summer = Bird()
- print 'after move:',summer.move(5,8)#调用类的函数(方法)
- class Chicken(Bird):#类,鸡;类;继承基/父类‘鸟’
- way_of_move = ‘walk’#变量,移动方式;属性
- possible_in_KFC = True
- class Oriole(Bird):#类,黄鹂;类;继承基/父类‘鸟’
- way_of_move = 'fly'
- possible_in_KFC = False
- summer = Chicken()
- print summer.have_feather#调用基/父类属性
- print summer.move(5,8)
所以说,面向对象提高了程序的可重复使用性
我们可以看到,面向对象实际上基于人类认知时的习惯,将各种各样的东西分类,从而了解世界。我们从祖先开始可能已经练习了这个认知过程有几百万年,所以面向对象是很符合人类思维习惯的编程方法。所谓面向过程(也就是执行完一个语句再执行下一个)实际上是机器思维。通过面向对象的编程,我们实际上是更贴近我们自然的思维方式,也更方便和其他人交流我们程序里所包含的想法,甚至于那个人并不是程序员
总结:
将东西根据属性归类 ( 将object归为class )
方法是一种属性,表示动作
用继承来说明父类-子类关系。子类自动具有父类的所有属性。
self代表了根据该类定义而创建的对象。
建立对一个对象: 对象名 = 类名()
引用对象的属性: object.attribute
作者:Vamei 出处:http://www.cnblogs.com/vamei
上一篇: Python创建简单的HTTP服务
下一篇: 用python连接Oracle是总是乱码
48102
46789
37711
35037
29576
26237
25166
20203
19841
18315
5988°
6672°
6164°
6153°
7264°
6103°
6212°
6684°
6649°
8040°