面向过程
所谓过程就是我们解决问题的步骤,一步步按照流程走,有先后之分。
整个设计就好比流水线,思维上比较机械化。
优缺点:
-
优点:
- 复杂的问题流程化,将问题分解简化。
-
缺点:
- 拓展性不好。
面向对象
核心是对象。
- 对象是一个数据以及相关行为的集合
- 面向对象是功能上指向建模对象
通过数据和行为方式来描述交互对象的集合。
在python中,一切皆为对象。
面向对象的优缺点:
-
优点:
- 解决程序的拓展性
-
缺点:
- 就是复杂度远高于面向过程。
- 交互式解决问题,无法准确预测结果。
在现实世界中,以我们为例
object1:
Tom
特征:
school = zucc
name = Tom
age = 20
gender = male
技能:
学习(study)
吃饭(eat)
睡觉(sleep)
object2:
Jack
特征:
school = zucc
name = Jack
age = 21
gender = male
技能:
学习(study)
吃饭(eat)
睡觉(sleep)
唱歌(sing)
类就是类别、种类
对象就是特征和技能的统一体。
类则是这一系列相似对象的特征和技能的结合
对于现实世界,先有个体(即对象),才有类别;但对于程序,必须先有类,然后才有对象的。
面向对象编程
OOP(object oriented programming)
是一种程序设计思想。OOP把对象作为程序的一个基本单元,一个对象就包含了数据和操作数据的函数。
在Python中,所有数据类型都可以视为对象,同时,我们也可以自定义对象
自定义的对象的数据类型就是面向对象中类(class)的概念
Demo:
假如要处理我们的成绩。为了表示学生的成绩
:
- 面向过程的方式
stu1 = {
"name":"Tom","socre":99}
stu2 = {
"name":Jack,"score":82}
用函数来实现
def find_score(stu):
print(stu['name']+':'+stu[score])
- 面向对象的方式
class Student:
def __init__(self,name,score):
self.name = name
self.score = score
def find_score(self):
print(self.name,':',self.score)
stu1 = Student("Tom",99)
stu1.find_score()
类的定义和使用
面向对象设计的思想,先抽象出类,再根据类创建实例。
类的定义
class ClassNaem(object):
"""dicstring"""
class_statement
-
类的命名,大驼峰式
- 所谓大驼峰就是变量名称的单词的首字母大写。
-
创建一个类