写在开头的碎碎念:
在前面的笔记中,所列举的代码皆为面向过程的编程,这里借用一个例子:用代码实现一个功能可以类比为做一道菜,面向过程的代码,可以理解为买菜-准备食材-炒菜-出锅装盘,是一个流程。
而面向对象,可以理解为我们创造“厨师”这样一个对象,给他赋予会做“川菜”、“粤菜”等的方法,还可以给这个厨师定义“姓名”、“年龄”等属性。通过面向对象的方法,我们创造出了具有特定姓名和年龄的厨师这个对象,想吃川菜时,就让“厨师”调用“川菜”这个方法即可。
以上是我对面向过程和面向对象的理解,下面则开始我的笔记。
1、类和对象:这是面向对象编程中两个非常重要的概念。类即事物的分类,是一种概念,比如“动物”就是一个比较笼统的概念;对象则是具体到类里面的某个事物,比如“熊猫”就是“动物”里面的具体对象
2、用 class 类名(object): 的方式来创建一个类,在Python 3中,括号内的object可以不写。类的首字母一般都是大写,便于与函数名区分
class Animal(object):
3、上面代码括号内的object,表示Animal类是属于object类,或者说继承于object类。object包括所有的类
4、类里面要有属性(特征)和方法(行为)
5、用一段代码来表现面向对象:
class Animal(object): #创建类
def run(self): #创建方法
print('running')
cat = Animal() #根据类创建对象
cat.run() #用对象调用方法
dog = Animal() #在一个类下创建多个对象
dog.run()
cat.name = 'A' #给对象添加属性
cat.name = 'B' #给对象修改属性
print(cat.name)
6、在创建方法时,有一个参数self,意思是哪个对象调用这个方法,self就表示那个对象(谁调用就表示谁)。
如果在定义方法时,print(id(self)),在对象调用这个方法,且调用时print(id(方法)),那么这两条输出的id是一样的