面向对象编程
什么是面向过程编程:
面向过程变成的核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么……
基于面向过程编程的思想编写程序好比在设计一条流水线,是一种机械式的思维方式。
- 优点:复杂的问题流程化、进而简单化
- 缺点:扩展性差
所以这个时候我们就需要使用面向对象编程的思想
面向对象编程
基于面向对象编程的思想编写程序,就好比是在创造一个世界,你就是这个世界的上帝,是一种上帝式的思维方式。
- 优点:可扩展性强
- 缺点:编程的复杂度要高于面向过程
类和对象
类的意思:种类、分类、类别
对象是特征与技能的结合体,我可能有身高体重、而你也有身高体重,所以你会说你像我,但是你一定不会说你像阿猫阿狗。并且我和你其实就可以说成是一类,而你和选课系统不能说是一类,因此给出类的定义:类就是一系列对象相似的特征与技能的结合体。
在现实世界中:先有一个个具体存在的对象,然后随着人类文明的发展才了分类的概念,既然现实世界中有类这个概念,Python程序中也一定有类这个概念,但是在Python程序中:必须先定义类,然后调用类来产生对象。
语法:
class OldboyStudent():
school = 'oldboy'
def choose_course(self):
print('is choosing course')
类与数据类型
- python3中统一了类与类型的概念,类就是类型
class Foo:
pass
obj = Foo()
print(type(obj))
<class '__main__.Foo'>
lis = [1, 2, 3]
lis2 = [4, 5, 6]
print(type(lis))
<class 'list'>
- lis和lis2都是实例化的对象,因此lis使用append方法和lis2无关
lis.append(7)
print(lis)
[1, 2, 3, 7]
print(lis2)