一、OOP 面向对象
- 面向对象编程
- 基础
- 共有私有
- 继承
- 组合
- 魔法函数
- 魔法函数概述
- 构造魔法函数
- 运算类魔法函数
二、面向对象概述
- OOP思想
- 接触到任意一个任务,首先想到的是任务这个世界的构成,是由模型构成的
- 几个名词
- OO:面向对象
- OOA:面向对象的分析
- OOD:面向对象的设计
- OOI:面向对象的实现
- OOP:面向对象的编程
- OOA>OOD>OOI:面向对象的实现过程
三、类和对象的概念
- 类:抽象名词,代表一个集合,共性的事物
- 对象:具体的事物,单个个体
- 类和对象的关系
- 一个是具象,代表一类事物的某一个个体
- 一个是抽象,代表是一大类事物
- 类中的内容,应该具有两个
- 表明事物的特征,叫做属性
- 表明事物功能或动作,叫做成员方法或函数
四、类的基本实现
-
类的命名
- 遵守变量明名的规范
- 大驼峰
- 尽量避免跟系统命名相似的命名
-
如何声明一个类
- 必须有关键字class
- 类由属性和方法构成,其他不允许出现
- 成员属性定义可以直接使用变量赋值,如果没有值,允许你使用None
-
实例化
- 变量=类名()
-
访问对象成员
- 使用点操作符
- obj.成员属性名称
- obj.成员方法
- 使用点操作符
-
可以通过默认内置变量检查类和对象的所有成员
- 对象所有成员检查
obj.__dict__ - 类所有成员
class_name.__dict__
- 对象所有成员检查
-
例如
定义一个学生类, 用来形容学生
#定义一个空的类 class Student(): #此处pass必须有 pass #定义一个对象 mingyue = Student() class PythonStudent(): #用NOne给不确定的值赋值 name = None age = 18 course = 'Python' def doHomework(self): print('I do homework') return None #实例化一个叫yueyue 的学生,是一个具体的人 yueyue = PythonStudent() print(yueyue.name) print(yueyue.age) yueyue.doHomework() print(PythonStudent.__dict__) class a(): name = 'nana' age = 16 def say(self): self.name = 'aaaa' self.age = 11 print(a.name) print(a.age) print('*'*20) print(id(a.name)) print(id(a.age)) print('*'*20) #创建实例 b = a() print(b.name) print(b.age) print(id(b.name)) print(id(b.age)) #说明在不对对象属性赋值的前提下,类的属性和实例的属性指向同一个地址 b.name = 'sss' b.age = 50 print(b.name) print