面向对象编程——Object Oriented Programming,简称 OOP
,是一种程序设计思想。OOP
把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。
而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。
在 Python 中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。
接下来,我们拿一个通俗易懂的例子来引入这样的概念,让你理解一下,面向对象的编程是怎样的。
比如小美同学需要找一个男朋友,她对于男朋友的标准是会洗衣服,凡是符合会洗衣服这个标准才可以做她的男朋友,于是她定义了一个“男朋友的标准模板”:
# 类的定义
class BoyFriend:
def wash_clothes(self):
print("不用管我怎么洗,我就是能把衣服洗干净")
此时她找到了一个叫做“张三”的男朋友,他会洗衣服,于是有如下代码:
# 类的定义
class BoyFriend:
def wash_clothes(self):
print("不用管我怎么洗,我就是能把衣服洗干净")
# 找了一个名叫张三的男朋友,符合男朋友的标准
# 将类实例化为对象
zhangsan = BoyFriend()
# 调用对象的方法
zhangsan.wash_clothes()
运行一下,会发现正常将不用管我怎么洗,我就是能把衣服洗干净
这句话打印了出来。关于代码的格式写法你可以先不用太在意,大概了解这个思想即可。
好的,接下来,小美同学发现男朋友张三在其他方面不太靠谱,于是她甩掉了这个男朋友(张三欲哭无泪)。接下来小美还是要找个男朋友呀,不过小美觉得还是要满足她的原有标准,那就是要会洗衣服。于是找啊找,小美同学找到了新男朋友——李四。我们把代码扩充如下:
# 类的定义
class BoyFriend:
def wash_clothes(self):
print("不用管我怎么洗,我就是能把衣服洗干净")
# 找了一个名叫张三的男朋友,符合男朋友的标准
# 将类实例化为对象
zhangsan = BoyFriend()
# 调用对象的方法
zhangsan.wash_clothes()
# 找了一个新的男朋友李四,也符合男朋友的标准
# 将类实例化为对象
lisi = BoyFriend()
# 调用对象的方法
lisi.wash_clothes()
我们会发现,李四的代码部分还是打印出了不用管我怎么洗,我就是能把衣服洗干净
这句话。于是我们大概理解了,类是某种标准的抽象,你可以理解为一个模板。而对象是一个个具体的个体,将类进行实例化为对象之后,对象都可以调用类的方法。
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com