面向对象编程和面向过程编程(函数式编程)都是程序设计的方法,不过稍有区别。
套路
面向过程编程1. 导入各种外部库2. 设计各种全局变量3. 写一个函数完成某个功能4. 写一个函数完成某个功能5. 写一个函数完成某个功能6. 写一个函数完成某个功能7. 写一个函数完成某个功能8. ......9. 写一个main函数作为程序入口
在面向过程编程中,许多重要的数据被放置在全局变量区,这样它们就可以被所有函数访问。每个函数都可以具有自己的局部变量数据,封装某些功能代码,无需重复编写,日后仅需调用函数即可。从代码的组织形式来看,面向函数编程的一般套路就是根据业务逻辑从上到下垒代码。
面向对象编程
1. 导入各种外部库2. 设计各种全局变量3. 决定你要的类4. 给每个类提供完整的一组操作5. 明确地使用继承来表现不同类之间的共同点6. ......7. 根据需要,决定是否写一个main函数作为程序入口
在面向对象编程中,将函数和变量进一步封装成类。类是面向对象程序的基本元素,它将数据(类属性)和操作(类方法)紧密地连接在一起,并保护数据不会被外界的函数意外地改变。类和和类的实例(也称对象)是面向对象的核心概念,是与面向过程编程的根本区别。面向对象编程并非必须,而要看你的程序怎么设计方便,但是就目前来说,基本上都是使用面向对象编程。
面向对象和类
类的组成:以狗为例
类名:狗类的属性:狗的一组数据,如狗的毛色、重量等类的方法:狗的功能
全局变量
实际上就是使用self初始化,然后就可以在类的方法里面直接调用全局变量
class Cat():# __init__初始化,self指代类本身,new_name, new_age是类的两个入参def __init__(self, new_name, new_age):self.name = new_nameself.age = new_agedef __str__(self):return '%s age is %d.'%(self.name, self.age)# 使用self初始化,然后在类方法里面直接调用全局变量 def eat(self):print('eating...')def drink(self):print('drink...')def introduce(self):print('%s age is:%d.'%(self.name, self.age))if __name__=='__main__':# 接收入参,类方法调用tom = Cat('tom', 40)tom.introduce()# 接收入参,类方法调用bluecat = Cat('Bluecat', 20)bluecat.introduce()print(tom)print(bluecat)