一、面向过程编程
面向过程:核心“过程”,实质是将需要实现的功能分成多个功能段,然后在按照特定的顺序去执行这些功能段,从而实现要求功能
优点:复杂问题流程化,将简单的问题简单化
缺点:可扩展性差,维护难度会高
用途:用于那些功能一旦实现之后就很少需要改变的场景,如,写一些简单的脚本程序
二、、面向对象编程
对象:特征和技能集合的个体
面向对象的核心是‘对象’;
优点:使程序更加容易扩展和易更改,使开发效率变的更高;基于面向对象的程序可以使它人更加容易理解你的代码逻辑,从而使团队开发变得更从容。
缺点:过程复杂,极容易出现过度设计的问题
用途:应用于客户需求经常变更,互联网应用,游戏等
三、面向对象名词解释
1、类
用有相似特征,属性和功能所有个体的集合。在类中定义了这些对象的都具备的属性(variables(data))、共同的方法。在程序中药先定义类,在产生个体对象。
2、属性
人类包含很多特征,把这些特征用程序来描述的话,叫做属性,比如年龄、身高、性别、姓名等都叫做属性,一个类中,可以有多个属性
3、方法
人类不止有身高、年龄、性别这些属性,还能做好多事情,比如说话、走路、吃饭等,相比较于属性是名词,说话、走路是动词,这些动词用程序来描述就叫做方法。
4、实例(对象)
一个对象即是一个类的实例化后的实例,一个类必须经过实例化后方可在程序中调用,一个类可以实例化多个对象,每个对象亦可以有不同的属性,就像人类是指所有人,每个人是指具体的对象,人与人之前有共性,亦有不同
5、实例化
把一个类转变为一个对象的过程就叫实例化
四、面向对象3大特性
1、Encapsulation 封装
2、Inheritance 继承
3、Polymorphism 多态
五、类的定义及使用
# 定义一个类,定义类的关键字:class
class LuffyStudents:
school = '路飞学城' # 类的数据属性
def learn(self): # 类的函数属性
print('is learning')
def eat(self): # 类的函数属性
print('is eatting')
def sleep(self): # 类的函数属性
print('is sleeping')
print(LuffyStudents.__dict__) # 查看定义类后的名称空间
print(LuffyStudents.__dict__['school']) # 打印定义类后的名称空间
# 查看类里面定义的属性
print(LuffyStudents.school)
print(LuffyStudents.eat)
print(LuffyStudents.learn)
print(LuffyStudents.sleep)
# 向类里面增加属性
LuffyStudents.country = 'China'
print(LuffyStudents.__dict__)
# 修改类里面的属性
LuffyStudents.school = '罗高'
print(LuffyStudents.school)
# 删除类里面的属性
del LuffyStudents.learn
print(LuffyStudents.__dict__