1. Python OOP 引入

  • 两种编程思想

面向过程:最重要的是:按步骤划分
面向对象:最重要的是:按照功能对象划分:找到对象,确定对象属性和行为

如何从面向过程的思想转换到面向对象的思想?

  1. 列举实现任务的步骤
  2. 分离实现任务的步骤中的代码块
  3. 将这些功能代码块划分到某个对象中
  4. 根据这个对象及其对应的行为,抽象出对应的类(设计类)
  • 类和对象

类的定义:某一个具体对象特征的抽象
类的组成:名称,属性,方法
注意:属性和方法都是抽象的概念,不是一个具体的实例。在产生对象之后,对象才有具体的属性和方法实现

类和对象的关系:
一些对象 –> 抽象出一个类:属性(静态特征值)+ 方法(动态抽象)–> 实例化一个对象(具体)

类和对象的例子:
钱(类):100元,10元,1元,…(对象)
汽车(类):奥迪,别克,大众… (对象)

*python中所有的数据类型都是对象。Python两种类:经典类和新式类
类名:大驼峰原则取名,注意class {name}后无( )
Class Money
Money是类名也是变量名
注意类的定义会占用内存

  • 变量和属性的区别

变量:根据不同的位置存在不同的访问权限(全局变量,局部变量…)
属性:只能通过对象进行访问(必须先找到对象,对象通过变量名来引用,既然是变量名也有响应的访问权限)
判定:是否有宿主(对象或者类)
注意对象有属性,类也有属性

2. 对象属性

  • 增加和访问

方法一:直接通过对象动态地添加:对象.属性=value
方法二:通过类的初始化方法(构造方法):__init__方法

e.g.

p = Person()
p.age=18
print(p.age)

上例中添加对象属性的内存机制:内存开辟一块新的空间存储18;通过p找到对象,再添加对象中的age属性;p.age指向数据18的内存地址