文章目录
一、面向过程编程介绍
面向过程编程:
- 导入外部库
- 设计全局变量
- 写一个函数实现某个功能,将得到的结果往下一个函数传递,并作为下一个函数的起始条件
- 写一个函数完成某个功能,将得到的结果往下一个函数传递,并作为下一个函数的起始条件
- 写一个函数完成某个功能,将得到的结果往下一个函数传递,并作为下一个函数的起始条件
- …
- 写一个main函数作为程序入口
面向过程变成的核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么……
基于面向过程编程的思想编写程序好比在设计一条流水线,是一种机械式的思维方式。
1. 优点:复杂的问题流程化、进而简单化
2. 缺点:扩展性差
二、面向对象编程介绍
面向对象编程:
- 导入各种外部库
- 设计各种全局变量
- 决定你要的类
- 给每个类提供完整的一组操作
- 明确地使用继承来表现不同类之间的共同点
- 根据需要,决定是否写一个main函数作为程序入口
面向对象的程序设计:核心是对象二字,对象是特征与功能的结合体,简单说一个公司要拓展海外业务,需要有外贸专业技能的人,那么HR招聘到的外贸专业人才就能称之为"对象",特征即是他的岗位或姓名,功能:外贸专业技能,公司业务拓展,便可以很方便通过他的特征来调用他的功能,比如:安排某某某参加外贸商务谈判。
优点:可扩展性强(参考下图)
缺点:编程的复杂度要高于面向过程
三、类和对象
类的意思:种类、分类、类别
对象是特征与技能的结合体,多个相似功能的对象(参考下图),可以划分为一类,因此给出类的定义:类就是一系列对象相似的特征与技能的结合体。
在现实世界中:先有一个个具体存在的对象,然后随着人类文明的发展才了分类的概念,既然现实世界中有类这个概念,Python程序中也一定有类这个概念,和现实世界不同的是在Python程序中:必须先定义类,然后调用类来产生对象。
1、python定义类和对象实例
定义类:
# 定义一个学生类
# 相似特征: 学校
# 相似技能:学习、选课
# 不同点:姓名、年龄、性别
class Student:
school='python训练营'
def learn(self):
print('%s 在%s 学习 !'%(self, Student.school))
def Elective(self):
print('is Electives')
# print('=====================run') # 类体代码在类的定义阶段就会立即执行
# 查看属性
print(Student.school) # 数据属性
print(Student.learn) # 函数属性
Student.learn('Jasn') # 类的函数属性调用
# 增加属性
Student.country = 'China'
print(Student.country)
# 修改属性
Student.school = 'python训练' # 重新赋值
print(Student.school)
# 删除属性
del Student.country
print(Student.country) # 内存不存在conutry,导致报错
定义对象
调用类即可产生对象,调用类的过程,又称为类的实例化,实例化的结果称为类的对象/实例
stu1=Student() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例
print('学生一的学校是:',stu1.school)
stu2=Student() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例
print('学生二的学校是',stu2.school)
结果:
学生一的学校是: python训练营
学生二的学校是: python训练营
四、定制对象独有特征
1、实例
class Student:
school='python训练营'
def learn(self):
print('%s 在%s 学习 !'%(self, Student.school))
def Elective(self):
print('is Electives')
stu1