软件编程的实质是将我们的思维转变成计算机能够识别语言的一个过程。
目录
面向过程
自上而下顺序执行,逐步求精:
其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;
各模块之间的关系尽可能简单,在功能上相对独立
每一模块内部均是由顺序、选择和循环三种基本结构组成;
其模块化实现的具体方法是使用子程序。
程序流程在写程序时就已决定。
面向对象
把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。
对同类对象抽象出其共性,形成类。
类中的大多数数据,只能用本类的方法进行处理。
类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。
程序流程由用户在使用中决定。
理解面向对象
面向对象是相对面向过程而言
面向对象和面向过程都是一种思想
面向过程:
强调的是功能行为
关注的是解决问题需要哪些步骤
面向对象:
将功能封装进对象,强调具备了功能的对象
关注的是解决问题需要哪些对象
面向对象是基于面向过程的
面向对象的特点
是一种符合人们思考习惯的思想
可以将复杂的事情简单化
将程序员从执行者转换成了指挥者
完成需求时:
先要去找具有所需功能的对象来用。
如果该对象不存在,那么创建一个具有所需功能的对象。
类的设计
只关心3样东西
事物名称(类名):人(Person)
属性:身高(height)、年龄(age)
行为(功能):跑(run)、跳(jump)
类与对象的关系
Python中描述事物通过类的形式体现,类具体概念上的定义。
对象即是该类事物实实在在存在的个体.
创建类
设计类
类名:见名知意,首字母大写,其他遵循驼峰原则
属性:见名知意,其他遵循驼峰原则
行为(方法/功能):见名知意,其他遵循驼峰原则
根据以上原则设计一个人类,
如下:
类名:Person
属性:gender age height weight hobby
行为:吃饭 跑步 走路 刷短视频
类的介绍
一种数据类型,本身并不占内存空间,跟所学的number、string、boolean等类似。
用类创建实例化对象(变量),对象占内存空间。
格式
class 类名(父类列表):
属性
行为
创建类实例
object:基类,超类,所有类的父类;一般没有需要继承的父类就写object
示例如下:
class Person(object):
pass
定义属性
定义属性也就是定义类中的变量
示例如下:
class Person(object):
# 定义属性(定义变量)
name = ''
age = 0
gender = 0
height = 0
weight = 0
定义方法
定义类中的函数。根据类的设计写了三个方法分别是:跑步、吃什么、看什么。
注意:方法的参数必须以self为第一个参数,self代表类的实例(某个对象)。
示例如下:
def run(self):
print('跑步')
def eat(self, food):
print('吃', food)
def look(self, name):
print('看%s' % name)
实例化对象
通过类来实例化对象,然后可通过对象来帮助我们实现想要的功能。
实例化一个对象
示例如下:
person1 = Person()
print(person1)
执行结果:
<__main__.Person object at 0x0000017659E997C8>
多个对象间关系
同一个类实例化多个对象,虽然都是同一个类实例化的对象,但并不是同一个对象。
示例如下:
# 实例化一个对象
person1 = Person()
print(person1)
print(id(person1))
# 再实例化一个对象
person2 = Person()
print(person2)
print(id(person2))
执行结果:
<__main__.Person object at 0x000001E595589808>
2085564749832
<__main__.Person object at 0x000001E595589848>
2085564749896
通过打印可看出它们不是一个对象。
访问对象的属性和方法
访问属性
格式:对象名.属性名
赋值:对象名.属性名 = 新的值
示例如下:
p1 = Person()
p1.name = '张三'
p1.age = 18
p1.gender = '男'
p1.height = 180
p1.weight = 80
print(p1.name, p1.age, p1.gender, p1.height, p1.weight)
# 执行结果
# 张三 18 男 180 80
访问方法
格式:对象名.方法名(参数列表)
开始访问之前创建类时设定的三个方法。
示例如下:
p1.run()
p1.eat('苹果')
p1.look('短视频')
# 执行结果
# 跑步
# 吃苹果
# 看短视频
表示为一个人先跑了一会步,之后开始吃苹果看短视频。
总结
本篇主要介绍了面向过程与面向对象的一些概念,类的设计、实例化对象及访问对象属性和方法。