什么是面向对象
面向对象是一种编程思想,是一种通过多个对象互相协作完成功能处理流程的编程思路,在核心处理过程中,又主要区分为类的声明定义、对象的创建使用、面向对象拥有的特征【三大特征:封装、继承、多态】
封装:体现了对象对于敏感数据的保护特征
继承:体现了代码的复用和功能的扩展
多态:体现了不同操作环境中代码的多样性【程序的健壮性】
为什么要用面向对象
程序的开发-> 软件开发-> 解决问题-> 处理数据-> CRUD{增删改查}
处理问题的过程~多样性-> 根据不同的问题【复杂度】-> 决定使用什么样的处理过程
成熟的处理过程:面向过程【函数式编程】、面向对象、……more
面向过程:它也是一种编程思想;函数式编程是面向过程编程思想的一种实现方式;专门用于处理~重在过程~问题解决方案。整体业务流程并不会特别复杂,需要按照一定的功能流程逐步处理即可,完成功能数据的结果展现。
使用时的依据:业务流程不复杂、业务流程独立~不会影响其他业务。
面向对象:编程思想,类和对象是面向对象编程思想的一种实现;
使用时的依据:业务流程较为复杂、业务流程互相影响~互相依赖。通过面向过程的方式~可以实现,但是业务处理代码会较为繁琐~同时代码冗余较多。通过面向对象的操作手段可以很好的解决这样的问题。
面向对象编程思想,是对面向过程编程思想的一种补充和完善,在企业项目开发过程中,面向过程和面向对象一样重要,使用过程中~混合开发!
没有过时的技术~只有适用的场景!
哪里使用面向对象
面向对象~ 业务流程较为复杂,在项目开发过程中出现了大量的相似数据,互相依赖和影响的情况下,完成业务流程,此时使用面向对象的编程思想~类和对象的实现,可以很好的解决代码编程的问题【繁琐、冗余】。
怎么认知面向对象?
人类发展过程中 ~ 认知和改造世界的过程
认知自己、认知周围、认知周边、认知世界、改造世界
目开发的过程~ 认知项目功能复杂度 和改造项目 类和对象
'''
1. 面向对象:入门程序
认识什么是类型和对象
'''
class HelloWorld:
'''
3. 这是一个类型的注释:入门程序
'''
def say(self):
'''
2. 打印一个hello world
'''
print("hello world, 面向对象(OO: Object Oriented)")
# 创建该类型的一个具体的对象
hw = HelloWorld()
# 调用对象的行为
hw.say()
开发过程中,项目开发~代码质量
良好的代码开发必须符合一定的规范:Python Enterprise Protocal:Python企业开发协议
项目开发规范:PEP规范
正常Python项目开发,遵循PEP规范:通用规范
常规情况下,我们一般遵循PEP8规范,PEP8规范现在是一种默认的行业开发标准。
所以~很多编程工具,都将PEP8规范的建议继承为自己的代码检测标准。
1 # 我认为还是通过个例子更容易让人理解
2
3 # 首先我们定义一个类
4 class A(object): # 这是一个类,class是创建一个类的标志
5 # 类变量(类属性):类属性是指类的属性,属性就是我们刚学编程的时候听过的变量。
6 x = 7
7 y = "asdf"
8
9 def __init__(self,name,age):
10 self.name = name
11 self.age = age
12
13 # 方法:方法就是在类外面我们写的函数,放在类里就叫做一个方法
14 def func(self):
15 c = 8 # 实例变量:定义在方法中的变量只作用于当前实例的类
16 print("Hello World!")
17
18 a = A() # 创建一个对象,实例化
object:
注意类名后面括号里有个参数object,他代表所有类的基类,也叫作超类。
这就有了一个新式类和旧式类的概念:
当用到多继承的时候,如果子类中没有想用的方法名或属性名,他会自动回到上面去找。那么按广度优先遍历的方法去寻找就是新式类(object);深度优先(括号里啥也没有)。
__init__():构造函数,实例化的时候若不显示的定义,那么默认调用一个无参的,是初始化的意思。