python语言支持面向过程吗_python学习笔记之--面向对象和面向过程

出一个场景:

玩过一个游戏:主人公,进入了一个场景,有10个小怪物,每个怪物的模型是一样的:有攻击力,血(100格),皮肤,等;如果小怪物有多个数值需要管理,小怪物的血量、小怪物出现在屏幕的地点。

{"blood":100,"location":"10,10"}

[[100,(10,10)]]

10 个小怪物。记住10个小怪物所有的变量在哪里,怎么操作?

如果写一些函数,来操作这些数据。函数你实现的时候,你觉得需要实现哪些功能?

10个方法:所有操作的数据的方法,而且10个小怪物需要写十组重复的代码来管理10个不同怪物的属性数据,代码很冗余也不方便维护。

如果用类来管理这些数据,所有的方法放在类里来管理,10个小怪物生成10个实例化来操作

函数实现:(如果有10个小怪物要写十个重复的这种代码,如果有更多呢?)

add_blood():

blood+=1minus_blood():

blood-=1move():

x-=10y-=10

类来实现:

class soldier(): #小怪物的类

"""小怪物的类"""

def __init__(self,blood,location_x,location_y):

self.blood=blood

self.location_x=location_x

self.lcoation_y=location_ydefadd_blood(self,num):if self.blood<=100:

self.blood+=numif self.blood>100:

self.blood= 100

defminus_blood(self,num):if self.blood>=0:

self.blood-=numif self.blood<0:

self.blood=0deftell_blood(self):returnself.blood

s1= soldier(100,10,10)

s2= soldier(90,10,20)

s3= soldier(80,10,30)print(s1.tell_blood())print(s2.tell_blood())print(s3.tell_blood())

总结:

➢函数式编程的应用场景 --> 各个函数之间是独立且无共用的数据

➢面向对象编程的应用场景→各个函数公用一组数据

函数式编程 和 面向对象 如何选择?

须知:对于 C# 和 Java 程序员来说不存在这个问题,因为该两门语言只支持面向对象编程(不支持函数式编程)。

而对于 Python 和 PHP 等语言却同时支持两种编程方式,且函数式编程能完成的操作,面向对象都可以实现;而面向对象的能完成的操作,函数式编程不行(函数式编程无法实现面向对象的封装功能)。

所以,一般在Python开发中,全部使用面向对象 或 面向对象和函数式混合使用

总结:面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象”来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。

➢ 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能

➢ 对象则是根据模板创建的实例,通过实例对象可以执行类中的函数

类和对象有什么不同?

类描述了对象,它们就是创建对象的模板。

你可能感兴趣的:(python语言支持面向过程吗)